UNPKG

async-wrappers

Version:

A set of wrapper functions to perform debouncing, throttling, retrying etc.

35 lines (31 loc) 623 B
/** * @internal */ const throwSettled = () => { throw new Error('pending cannot be changed after it has settled'); }; /** * Used to hold a pending result * @internal */ /** * create a waiting empty result * @internal */ const pending = () => { const value = {}; value.promise = new Promise((resolve, reject) => { value.complete = arg => { resolve(arg); reject = resolve = throwSettled; return value.promise; }; value.error = err => { reject(err); reject = resolve = throwSettled; return value.promise; }; }); return value; }; export default pending;