الدرس 6 من 8

مهلة للطلب

هدف الدرس

للانتظار حدّ

01

الشرح

طلب بلا مهلة قد ينتظر إلى الأبد: شبكة ضعيفة أو خادم عالق، والمستخدم أمام «جارٍ التحميل…» لا ينتهي. الأفضل أن يفشل بعد ثوانٍ برسالة واضحة، فيعرف المستخدم أن عليه إعادة المحاولة.

Promise.race يُرجع نتيجة أول وعد يستقرّ، نجاحًا كانت أو فشلًا. فسابِق الطلب بوعد يُرفض بعد المهلة: إن وصل الطلب أولًا مرّت نتيجته، وإن سبقه المؤقّت رُفض السباق بخطأ المهلة.

وانتبه: المهلة تُنهي انتظارك لا الطلب نفسه، فيبقى جاريًا في الخلفية حتى يصل ردّه ولا أحد ينتظره. إلغاؤه فعلًا موضوع الدرس التالي.

02

المطلوب

اكتب withTimeout(promise, ms) تمرّر نتيجة الوعد كما هي، قيمةً كانت أو خطأً، إن استقرّ قبل ms، وإلا تُرفض بـ new Error('انتهت المهلة').

معايير التصحيح

5 معايير
  1. الطلب السريع يمرّ بقيمته
  2. البطيء يُرفض عند المهلة لا بعد وصوله
  3. الرفض خطأ يذكر المهلة
  4. خطأ الطلب نفسه يصل كما هو
  5. زرّ الطلب البطيء يعرض رسالة المهلة
index.html
المعاينة
index.html100%
–/5

اضغط «تشغيل» ليبدأ الفحص.

5 معايير في بطاقة «المطلوب».