NDB Future 类

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。)