הערך Future מייצג את התוצאה של פעולה אסינכרונית.
כשיוצרים אותו, כנראה שאין בו נתוני תוצאות.
כשהפעולה מסתיימת, התוצאה מופיעה ב-Future.
אפליקציה יכולה לקרוא ל-method get_result() של אובייקט Future. אם התוצאה הגיעה, ה-method מחזירה אותה. אחרת, היא מחכה שהתוצאה תגיע ואז מחזירה אותה.
הערה: אין מיפוי 1:1 בין RPC לבין Futures. יכול להיות שכמה עתידים קשורים לתוצאה של RPC יחיד.
Instance Methods
- check_success()
- בודקים אם הפעולה הצליחה. הפונקציה ממתינה אם צריך.
מעלה חריגה אם הייתה בעיה; מחזירה
Noneאם לא הייתה בעיה. - done()
- הפונקציה מחזירה את הערך
Trueאם התוצאה (או החריגה) הגיעה. אחרת, היא מחזירה את הערךFalse. הפונקציה הזו לא ממתינה. - get_exception()
- הפונקציה ממתינה אם צריך, ואז מחזירה את החריגה (או
Noneאם לא הייתה חריגה). הפונקציה מחזירה את החריגה, ולא מעלה אותה. - get_result()
- הפונקציה ממתינה אם צריך, ואז מחזירה את התוצאה או מעלה את החריגה.
- get_traceback()
- הפונקציה ממתינה אם יש צורך בכך, ואז מחזירה את אובייקט המעקב אחר שגיאות של החריגה (או
Noneאם לא היה אובייקט מעקב אחר שגיאות). מודולtracebackשל Python כולל פונקציות להדפסה ולעבודה עם אובייקטים של traceback. - wait()
- הפונקציה ממתינה עד שמתקבלת תוצאה או חריגה.
הפונקציה תמיד מחזירה
None.
Class Methods
- wait_all(futures)
- המתנה עד שכל
Futuresב-iterable שהועבר יסתיימו.ארגומנטים
- futures
- Iterable של
Futureאובייקטים.
הפונקציה מחזירה את הערך
None. - wait_any(futures)
- המתנה עד שלפחות אחד מהאיברים של
Futuresיסיים את הפעולה.ארגומנטים
- futures
- Iterable של
Futureאובייקטים.
מחזירה
Futureאחד שהסתיים. (מחזירהNoneאם האובייקטfuturesiterable ריק).