AbortController وAbortSignal كائنان عامان تستخدمهما Fetch والمؤقتات
والتدفقات ومستمعو الأحداث.
const controller = new AbortController();
controller.signal.aborted; // false
controller.abort();
controller.signal.aborted; // true
controller.signal.reason.name; // "AbortError"AbortController
- يعيد
controller.signal الإشارة نفسها في كل قراءة. -
abort(reason?) متساوي الأثر ويرسل abort مرة واحدة. - من دون سبب، تخزّن الإشارة
DOMException من النوع AbortError.
AbortSignal
| العنصر | الغرض |
|---|---|
aborted | ما إذا كان الإلغاء قد حدث. |
reason | السبب المقدَّم أو AbortError افتراضي. |
throwIfAborted() | رمي السبب عند الإلغاء. |
onabort | معالج واحد لحدث الإلغاء. |
AbortSignal. | إنشاء إشارة ملغاة مسبقًا. |
AbortSignal. | الإلغاء عندما يُلغى أي مدخل. |
AbortSignal.timeout(ms) | الإلغاء لاحقًا مع TimeoutError. |
لا يمكن إنشاء AbortSignal مباشرة.
مستمعو الأحداث
const target = new EventTarget();
const controller = new AbortController();
let calls = 0;
const onMessage = () => {
calls += 1;
};
target.addEventListener("message", onMessage, {
signal: controller.signal,
});
target.dispatchEvent(new Event("message"));
controller.abort(); // removes the listener
target.dispatchEvent(new Event("message"));
console.log(calls); // 1تمنع الإشارة الملغاة مسبقًا التسجيل. وتُتجاهل القيمة التي ليست AbortSignal في
الخيار signal.
Reference
Status: Full · Not measured · since 1.1.0
Exports
| Export | Kind | Status | Notes |
|---|---|---|---|
AbortController | class | Full | signal, abort() |
AbortSignal | class | Full | AbortSignal.abort(), AbortSignal.timeout(), AbortSignal.any(), aborted, reason, throwIfAborted(), onabort |