UNPKG

softkave-js-utils

Version:

JavaScript & Typescript utility functions, types, and classes

37 lines 1 kB
import assert from 'assert'; import { isBoolean } from 'lodash-es'; export function getDeferredPromise() { let pResolveFn; let pRejectFn; let isResolved; const promise = new Promise((resolve, reject) => { pResolveFn = resolve; pRejectFn = reject; }); const resolveFn = (value) => { if (isBoolean(isResolved)) { return; } isResolved = true; assert(pResolveFn); pResolveFn(value); }; const rejectFn = (error) => { if (isBoolean(isResolved)) { return; } isResolved = false; assert(pRejectFn); pRejectFn(error); }; const isDone = () => isBoolean(isResolved); const isPromiseResolved = () => isResolved !== null && isResolved !== void 0 ? isResolved : false; return { promise, isDone, isPromiseResolved, resolve: resolveFn, reject: rejectFn, }; } //# sourceMappingURL=getDeferredPromise.js.map