UNPKG

promise-make-naked

Version:

A simple function that makes a promise that can be resolved, rejected or introspected from the outside.

26 lines (25 loc) 701 B
/* IMPORT */ import { noop } from './utils.js'; /* MAIN */ const makeNakedPromise = () => { let resolve = noop; let reject = noop; let resolved = false; let rejected = false; const promise = new Promise((res, rej) => { resolve = value => { resolved = true; return res(value); }; reject = value => { rejected = true; return rej(value); }; }); const isPending = () => !resolved && !rejected; const isResolved = () => resolved; const isRejected = () => rejected; return { promise, resolve, reject, isPending, isResolved, isRejected }; }; /* EXPORT */ export default makeNakedPromise;