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)
- Wait until all
Futuresin the passed iterable are done.引數
- 期貨
- 物件的可疊代項目。
Future
傳回
None。 - wait_any(futures)
- Wait until at least one of a iterable of
Futuresis done.引數
- 期貨
- 物件的可疊代項目。
Future
傳回已完成的
Future。 (如果futures可疊代項目為空白,則傳回None)。