ExpertiDict

Go · Intermediário · Inglês · Técnico

context

/ˈkɑn.tɛkst/substantivo

Pacote e tipo que carregam prazo, sinal de cancelamento e valores atravessando chamadas e goroutines. É passado como primeiro parâmetro, chamado ctx, de funções que podem demorar.

Onde usar

Todo handler HTTP, consulta ao banco e chamada de rede deveria receber um ctx. Quando o cliente desiste ou o prazo estoura, o cancelamento se propaga por toda a árvore de chamadas.

Em código

func buscar(ctx context.Context) error {
  select {
  case <-time.After(2 * time.Second):
    return nil
  case <-ctx.Done():
    return ctx.Err() // cancelado ou prazo
  }
}

Exemplos

Pass the context as the first argument.

Passe o context como primeiro argumento.

The query stopped when the request context was canceled.

A consulta parou quando o context da requisição foi cancelado.

Cuidado

Não guarde ctx em struct nem passe nil; o contexto é parâmetro de função e, sem escolha melhor, use context.TODO.

Sinônimos

ctx

Origem

Do latim contextus, 'tecido junto'.

Veja também

Todos os termos de Go