تكرار السؤال: …
الإجابة المختصرة
Promise.all يفشل بمجرد رفض أي وعد، وPromise.allSettled ينتظر اكتمال الجميع بنجاح وفشل، بينما Promise.race يحسم نتيجته مع أول وعد ينتهي أياً كانت حالته.
الشرح
يستخدم Promise.all عندما تعتمد الخطوة التالية على نجاح كل العمليات معاً (fail-fast). يستخدم Promise.allSettled لتشغيل مهام مستقلة وتحليل نتيجة كل منها على حدة. أما Promise.race فيستخدم لتنفيذ مهلات الطلبات بتسابق الطلب مع مؤقت زمني.
مثال بالكود
const results = await Promise.allSettled([fetchA(), fetchB()]);أخطاء شائعة
- استخدام Promise.all لمجموعة طلبات خارجية دون معالجة احتمال فشل أحدها مما يفقد بيانات الطلبات الناجحة.