threads
Version:
Web workers & worker threads as simple as a function call
29 lines (28 loc) • 790 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.createPromiseWithResolver = void 0;
const doNothing = () => undefined;
/**
* Creates a new promise and exposes its resolver function.
* Use with care!
*/
function createPromiseWithResolver() {
let alreadyResolved = false;
let resolvedTo;
let resolver = doNothing;
const promise = new Promise(resolve => {
if (alreadyResolved) {
resolve(resolvedTo);
}
else {
resolver = resolve;
}
});
const exposedResolver = (value) => {
alreadyResolved = true;
resolvedTo = value;
resolver(resolvedTo);
};
return [promise, exposedResolver];
}
exports.createPromiseWithResolver = createPromiseWithResolver;
;