coding · Cursor · free
أعد كتابة هذا الكود القائم على دالات الاستدعاء (callback) باستخدام async/await دون تغيير سلوكه. النتائج المطلوبة: 1. الدالة (الدوال) المعاد كتابتها — بأنواع مناسبة، بدون استخدام any 2. غلاف util.promisify لأي دالة استدعاء من مكتبة Node القياسية تفتقر إلى نسخة Promise 3. الحفاظ على معالجة الأخطاء — إذا كان الأصل يتجاهل الأخطاء، فقم بتمييزها ولا تحتفظ بالخطأ بصمت 4. الحفاظ على التوازي — إذا كانت النسخة الأصلية تطلق N استدعاءات رد في وقت واحد، فاستخدم Promise.all / Promise.allSettled؛ تجنب التسلسل عن غير قصد 5. الحفاظ على الضغط العكسي — إذا كان الأمر يتعلق بالبث، فاحافظ عليه كدفق، ولا تقم بتخزينه مؤقتًا في الذاكرة 6. تم إصلاح المشكلات المحددة التالية: forEach مع دالة استدعاء غير متزامنة (لا تنتظر بصمت) حالات الرفض غير الملتقطة من IIFE async ذات المستوى الأعلى try/catch حول .then() من نوع «أطلق وانس» فقدان ربط this 7. ملخص الاختلافات — ما الذي تغير، وما الذي بقي على حاله 8. اختبار ينجح قبل وبعد إعادة الكتابة (يثبت عدم وجود تغيير في السلوك) إصدار Node المستهدف: [20+]. إذا كانت أي واجهة برمجة تطبيقات (API) للرد لا تحتوي على غلاف Promise،…
#refactoring #async #javascript