Can't return error after returning channel in subscription
- Lenguaje dominante
- Go
- Estrellas
- 10.8k
- Forks
- 1.3k
- Merge medio
- 2 d 36 min
- PR fusionados (30 d)
- 26
Descripción
### What happened?
Can't return an error after returning a channel.
For example, errors in redis-pubsub , gRPC client streaming, etc.
### What did you expect?
I want to return an error after returning a channel.
### Minimal graphql.schema and models to reproduce
```graphql
type Subscription {
messageAdded: Message!
}
type Message {
id: ID!
body: String!
}
```
```golang
func (r *subscriptionResolver) MessageAdded(ctx context.Context) (<-chan *model.Message, error) {
ch := make(chan *model.Message)
go func() {
// some kind of block processing (e.g.: gRPC client streaming)
stream, err := gRPCClientStreamRequest(ctx)
if err != nil {
log.Println(err) // i want to return this error
}
for {
m, err := stream.Recv()
if err == io.EOF {
return
}
if err != nil {
log.Println(err) // i want to return this error
}
ch <- m
}
}()
return ch, nil
}
```
### versions
- `gqlgen version`: 0.11.3
- `go version`: 1.13
- `dep or go modules`: go modules
Guía de contribución
Evaluación
Este issue todavía no se ha evaluado.