UNPKG

@naturalcycles/js-lib

Version:

Standard library for universal (browser + Node.js) javascript

18 lines (17 loc) 580 B
/* eslint-disable @typescript-eslint/promise-function-async */ /** * Returns DeferredPromise - a Promise that has .resolve() and .reject() methods. */ export function pDefer() { let resolve; let reject; const promise = new Promise((_resolve, _reject) => { resolve = _resolve; reject = _reject; }); promise.resolve = resolve; promise.reject = reject; promise.rejectAborted = reason => reject(new Error(['Aborted', reason].filter(Boolean).join(': '))); promise.abort = reason => promise.rejectAborted(reason); return promise; }