انتقل إلى محتوى الدرس

Ignoring Expected AbortError استثناء خطأ الإلغاء المقصود

احمِ واجهة React من تضارب ردود الشبكة المتأخرة باستخدام راية التجاهل في دالة التنظيف وأداة AbortController القياسية وفصل خطأ الإلغاء المقصود وتهدئة البحث.
2 صفوف تعليمية
ReactJS
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

عندما تلغي الدالة controller.abort() طلب fetch() قيد التنفيذ، يرفض المتصفح الوعد باستثناء قياسي خاص يحمل الاسم err.name === 'AbortError'. فإذا تعاملت كتلة catch مع كافة الأخطاء بالطريقة نفسها، فسيظهر للمستخدم تنبيه فشل أحمر زائف بمجرد تنقله السريع بين التبويبات!

افحص دائماً الشرط if (err.name === 'AbortError') return; في أول سطر من catch. وإذا استخدمت كتلة finally لإيقاف مؤشر التحميل، فقيّدها بالشرط if (!controller.signal.aborted) حتى لا يوقف الطلب الملغى مؤشر التحميل الخاص بالطلب الأحدث الجاري حالياً.

الصف 2 ملاحظة هامة