async-wrappers
Version:
A set of wrapper functions to perform debouncing, throttling, retrying etc.
35 lines (31 loc) • 617 B
JavaScript
/**
* @internal
*/
var 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
*/
var pending = () => {
var 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;