Um Future
representa o resultado de uma operação assíncrona.
Quando criado, ele provavelmente não tem dados de resultado.
Quando a operação termina, o Future
recebe o resultado.
Um aplicativo pode chamar o método get_result()
de um objeto Future
. Se o resultado tiver chegado, o método vai retorná-lo. Do contrário, ele aguarda a chegada do resultado e depois o retorna.
Observação: não há mapeamento 1:1 entre RPCs e Futures. Vários futures podem estar vinculados a um resultado de uma única RPC.
Métodos de instância
- check_success()
- Verifica se a operação foi bem-sucedida. Aguarda, se necessário.
Gera uma exceção quando há um problema. Caso contrário, retorna
None
. - done()
- Retorna
True
se o resultado (ou a exceção) tiver chegado. Do contrário, retornaFalse
. Essa função não aguarda. - get_exception()
- Aguarda, se necessário. Em seguida, retorna a exceção (ou
None
caso não haja exceção). Retorna a exceção. Não a gera. - get_result()
- Aguarda, se necessário. Em seguida, retorna o resultado ou gera a exceção.
- get_traceback()
- Aguarda, se necessário. Em seguida, retorna o objeto traceback da exceção (ou
None
caso não haja objeto traceback). O módulotraceback
do Python tem funções para imprimir e trabalhar com objetos traceback. - wait()
- Aguarda até um resultado ou uma exceção chegar.
O retorno é sempre
None
.
Métodos de classe
- wait_all(futures)
- Aguarda a conclusão de todos os
Futures
no iterável passado.Argumentos
- futures
- Iterável de objetos
Future
.
Retorna
None
. - wait_any(futures)
- Aguarda a conclusão de pelo menos um dos iteráveis de
Futures
.Argumentos
- futures
- Iterável de objetos
Future
.
Retorna um
Future
concluído. (RetornaNone
se o iterávelfutures
estiver vazio.)