UNPKG

@lylajs/core

Version:

31 lines (30 loc) 732 B
export class LylaAbortController { constructor() { this.signal = new LylaAbortSignal(); } abort(reason) { if (this.signal.aborted) return; this.signal.__abort(reason); this.signal.__listeners; } } export class LylaAbortSignal { constructor() { this.aborted = false; this.__listeners = new Set(); } addEventListener(type, listener) { this.__listeners.add(listener); } removeEventListener(type, listener) { this.__listeners.delete(listener); } __abort(reason) { this.aborted = true; this.reason = reason; this.__listeners.forEach((listener) => { listener(); }); } }