UNPKG

threads

Version:

Web workers & worker threads as simple as a function call

25 lines (24 loc) 613 B
const doNothing = () => undefined; /** * Creates a new promise and exposes its resolver function. * Use with care! */ export 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]; }