Future
表示异步操作的结果。创建时,它可能没有任何结果数据。操作完成后,Future
将获得结果。应用可以调用 Future
对象的 get_result()
方法;如果结果已到达,则该方法会返回结果;否则,该方法会等待结果到达然后返回结果。
注意:RPC 和 Future 之间没有一一对应的映射关系。可能有多个 future 与来自同一个 RPC 的结果相关联。
实例方法
- check_success()
- 检查操作是否成功完成。 在必要时等待。如果出现问题,会引发异常;如果没有问题,则返回
None
- done()
- 如果结果(或异常)已到达,则返回
True
;否则,返回False
。此函数不会等待。 - get_exception()
- 必要时等待;然后返回异常(如果没有异常则返回
None
)。此方法只返回异常,而不引发异常。 - get_result()
- 必要时等待;然后返回结果或引发异常。
- get_traceback()
- 必要时等待;然后返回异常的 traceback 对象(如果没有 traceback 对象,则返回
None
)。Python 的traceback
模块中含有输出和处理 traceback 对象的函数。 - wait()
- 等待结果或异常到达。始终返回
None
。
类方法
- wait_all(futures)
- 等到传递的可迭代对象中的所有
Futures
完成。参数
- futures
Future
对象的可迭代对象。
返回
None
。 - wait_any(futures)
- 等到至少有一个
Futures
的可迭代对象完成。参数
- futures
Future
对象的可迭代对象。
返回一个已完成的
Future
。 (如果futures
可迭代对象为空,则返回None
。)