UNPKG

threads

Version:

Web workers & worker threads as simple as a function call

29 lines (28 loc) 790 B
"use strict"; 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;