إلغاء انتظار غير متزامن بإستخدام AbortController
بعض APIs بتقبل signal علشان المستدعي يقدر يلغي العملية
تجهيز المثال
إستخدم Node.js 24 أو إصدار أحدث متوافق واحفظ الملفات داخل مجلد تدريب جديد وشغل node main.mjs
كود التطبيق
import { setTimeout as delay } from 'node:timers/promises';
const controller = new AbortController();
const waiting = delay(5000, 'Done', { signal: controller.signal });
controller.abort();
try {
console.log(await waiting);
} catch (error) {
if (error.name !== 'AbortError') throw error;
console.log('Cancelled');
}طريقة التجربة والنتيجة
الانتظار بيتلغى وبتظهر Cancelled بدل انتظار خمس ثواني
ملحوظة
دعم الإلغاء لازم يكون موجود في API نفسها وتمرير signal لوحده مش بيوقف أي دالة عادية