JavaScript Promise.race() שיטה

Javascript Promise Race Syth



שיטת Promise.race() היא שיטה מובנית של JavaScript שלוקחת מספר חוזר של הבטחות כטיעון ומחזירה את ההבטחה הראשונה שנפתרה או נדחתה. השיטה Promise.race() תחזיר את ערך המילוי או את הסיבה לדחייה. איטרבלים הם אובייקטים שניתן לעבור דרכם בלולאה כגון מערכים, מחרוזות ומפות.

מה זה בכלל הבטחות?

ניתן להתמודד עם קוד אסינכרוני עם הבטחות. הם לוקחים פונקציה המכונה המבצע כפרמטר. כאשר נוצרת הבטחה, המוציא לפועל פועל באופן אוטומטי באופן אסינכרוני ומחזיר ערך במקרה שהוא מתקיים אחרת הוא מחזיר את סיבת הדחייה:

תן example_promise = הבטחה חדשה ( ( לפתור, לדחות ) => {
לִפְתוֹר ( 'ההבטחה נפתרה' ) ;
} ) ;

דוגמה_הבטחה. לאחר מכן ( ר => לְנַחֵם. עֵץ ( ר ) ) ;







אופי אסינכרוני של הבטחות:



תן example_promise = הבטחה חדשה ( ( לפתור, לדחות ) => {
לִפְתוֹר ( 'ההבטחה נפתרה' ) ;
} ) ;

דוגמה_הבטחה. לאחר מכן ( ר => לְנַחֵם. עֵץ ( ר ) ) ;
לְנַחֵם. עֵץ ( '1,2,3...' ) ;



כיצד להשתמש בשיטת Promise.race()?

העבר מספר הבטחות חוזר לשיטת Promise.race() וקבל את ערך ההחזר שלה במשתנה:





לתת לנשף1 = הבטחה חדשה ( ( לפתור, לדחות ) => {
setTimeout ( ( ) => לִפְתוֹר ( 'ההבטחה נפתרה' ) , 500 ) ;
} ) ;

תן נשף2 = הבטחה חדשה ( ( לפתור, לדחות ) => {
setTimeout ( ( ) => לִדחוֹת ( 'לא ניתן היה לפתור הבטחה' ) , 250 ) ;
} ) ;

לתת לטמפ' = הַבטָחָה. גזע ( [ נשף1, נשף2 ] ) ;

טמפ' לתפוס ( סיבה => לְנַחֵם. עֵץ ( סיבה ) ) ;

בדוגמה הזו היו לנו שתי הבטחות. ההבטחה הראשונה נפתרה לאחר 500 אלפיות השנייה וההבטחה השנייה נדחתה רק לאחר 250 שניות. מכיוון שההבטחה השנייה הייתה הראשונה שנפתרה או נדחתה, היא הוחזרה בשיטת Promise.race() .



אם הארגומנט המועבר למתודה Promise.race() הוא איטרציה ריקה, השיטה תחזיר הבטחה ממתינה לנצח:

לתת לטמפ' = הַבטָחָה. גזע ( [ ] ) ;

לְנַחֵם. עֵץ ( טמפ' ) ;

אם הטיעון החזרתי כולל ערכי אי-הבטחה או הבטחות שכבר מומשו או נדחו, השיטה תסתפק בערך הראשון במערך:

תן p1 = הבטחה חדשה ( ( לפתור, לדחות ) => {
לִפְתוֹר ( 'P1 נפתרה' ) ;
} ) ;

תן p2 = הבטחה חדשה ( ( לפתור, לדחות ) => {
לִפְתוֹר ( 'P2 נפתרה' ) ;
} ) ;

לתת לטמפ' = הַבטָחָה. גזע ( [ p1,p2 ] ) ;
טמפ' לאחר מכן ( ערך => לְנַחֵם. עֵץ ( ערך ) ) ;

בדיקת שיטת Promise.race() עבור הבטחות שנפתרו ונדחו. לשיטה זו יש גם אלטרנטיבה נוספת שהיא השיטה Promise.any() שבה ניתן להשתמש רק כדי לבדוק את ההבטחות שהתקיימו.

סיכום

השיטה Promise.race() משמשת כדי לקבל את ההבטחה הראשונה שמתממשת או נדחתה ממספר הבטחות חוזר. ההבטחה שמתממשת או נדחתה הכי מוקדם היא ערך ההחזר של Promise.race(). הכתבה סיפקה תובנה מעמיקה לגבי שיטת Promise.race() .