async-wrappers
Version:
A set of wrapper functions to perform debouncing, throttling, retrying etc.
43 lines (37 loc) • 758 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
/**
* @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;
};
var _default = pending;
exports.default = _default;