UNPKG

@ydbjs/abortable

Version:

Utilities for working with AbortController and AbortSignal in YDB operations.

18 lines 651 B
export async function abortable(signal, promise) { if (signal.aborted) { throw new DOMException('AbortError', { name: 'AbortError', cause: signal.reason }); } let abortHandler; return Promise.race([ promise, new Promise((_, reject) => { let reason = new DOMException('AbortError', { name: 'AbortError', cause: signal.reason }); abortHandler = () => reject(reason); signal.addEventListener('abort', abortHandler, { once: true }); }), ]) .finally(() => { signal.removeEventListener('abort', abortHandler); }); } //# sourceMappingURL=index.js.map