NDB Future 類別

Future 代表非同步作業的結果。建立時,可能沒有任何結果資料。作業完成後,Future 會取得結果。應用程式可以呼叫 Future 物件的 get_result() 方法。如果有結果,這個方法會傳回結果。如果沒有結果,這個方法會等到結果產生,然後「再」傳回結果。

注意:RPC 和 Future 之間沒有 1 對 1 的對應關係。多個 Future 可能會連結至單一 RPC 的一筆結果。

例項方法

check_success()
檢查作業是否成功。視需要等待。如果發生問題,系統會擲回例外狀況;如果沒有問題,則會傳回 None
done()
如果結果 (或例外狀況) 已到達,就會傳回 True;否則會傳回 False。這個函式不會等待。
get_exception()
視需要等候,然後傳回例外狀況 (如果沒有例外狀況,則傳回 None)。傳回例外狀況,不會擲回。
get_result()
視需要等候,然後傳回結果或引發例外狀況。
get_traceback()
視需要等候,然後傳回例外狀況的回溯物件 (如果沒有回溯物件,則傳回 None)。Python 的 traceback 模組含有可列印及處理回溯物件的函式。
wait()
等待結果或例外狀況出現。一律會傳回 None

類別方法

wait_all(futures)
等待傳遞的可枚舉項目中的所有 Futures 完成。

引數

futures
可迭代的 Future 物件。

傳回 None

wait_any(futures)
等到至少一個 Futures 可迭代項目完成。

引數

futures
可迭代的 Future 物件。

傳回已完成的 Future 一個。(如果 futures 可疊代項目為空白,則傳回 None)。