@naturalcycles/js-lib
Version:
Standard library for universal (browser + Node.js) javascript
21 lines (20 loc) • 675 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.pDefer = pDefer;
/* eslint-disable @typescript-eslint/promise-function-async */
/**
* Returns DeferredPromise - a Promise that has .resolve() and .reject() methods.
*/
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;
}