UNPKG

@ydbjs/abortable

Version:

Utilities for working with AbortController and AbortSignal in YDB operations.

16 lines 510 B
export async function abortable(signal, promise) { signal.throwIfAborted(); let abortHandler; let abortPromise = new Promise((_, reject) => { abortHandler = () => reject(signal.reason); signal.addEventListener('abort', abortHandler, { once: true }); }); try { return await Promise.race([promise, abortPromise]); } finally { if (abortHandler) signal.removeEventListener('abort', abortHandler); } } //# sourceMappingURL=abortable.js.map