A Future
represents the result of an
asynchronous operation.
When created, it probably doesn't have any result data.
When the operation finishes, the Future
gets the result.
An application can call a Future
object's
get_result()
method; if the result has arrived, the
method returns it; otherwise, it waits for the result to arrive and
then returns it.
Note: There is no 1:1 mapping between RPCs and Futures. Multiple futures might be tied to a result from a single RPC.
Instance Methods
- check_success()
- Check to see if the operation succeeded. Waits if necessary.
Raises an exception if there was a problem; returns
None
if there was no problem. - done()
- Returns
True
if the result (or exception) has arrived; otherwise, returnsFalse
. This function does not wait. - get_exception()
- Waits if necessary; then returns the exception (or
None
if there was no exception). Returns the exception, doesn't raise it. - get_result()
- Waits if necessary; then returns the result or raises the exception.
- get_traceback()
- Waits if necessary; then returns the exception's traceback
object (or
None
if there was no traceback object). Python'straceback
module has functions to print and work with traceback objects. - wait()
- Waits until a result or exception arrives.
Always returns
None
.
Class Methods
- wait_all(futures)
- Wait until all
Futures
in the passed iterable are done.Arguments
- futures
- Iterable of
Future
objects.
Returns
None
. - wait_any(futures)
- Wait until at least one of a iterable of
Futures
is done.Arguments
- futures
- Iterable of
Future
objects.
Returns one
Future
that is done. (ReturnsNone
if thefutures
iterable is empty.)