طريقة JavaScript Promise.race ()

Tryqt Javascript Promise Race



طريقة 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' ) ؛
} ) ؛

اسمحوا درجة الحرارة = يعد. سباق ( [ ص 1 ، ص 2 ] ) ؛
مؤقت. ومن بعد ( القيمة => وحدة التحكم. سجل ( القيمة ) ) ؛

طريقة Promise.race () تحقق من كل من الوعود التي تم حلها والمرفوضة. تحتوي هذه الطريقة أيضًا على بديل آخر وهو طريقة Promise.any () التي يمكن استخدامها فقط للتحقق من الوفاء بالوعود.

استنتاج

تُستخدم طريقة Promise.race () للحصول على الوعد الأول الذي يتم الوفاء به أو رفضه من الوعود المتكررة. الوعد الذي تم الوفاء به أو رفضه في أقرب وقت هو قيمة إرجاع Promise.race (). قدمت الكتابة نظرة متعمقة حول طريقة Promise.race ().