UNPKG

736 BJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const doNothing = () => undefined;
4/**
5 * Creates a new promise and exposes its resolver function.
6 * Use with care!
7 */
8function createPromiseWithResolver() {
9 let alreadyResolved = false;
10 let resolvedTo;
11 let resolver = doNothing;
12 const promise = new Promise(resolve => {
13 if (alreadyResolved) {
14 resolve(resolvedTo);
15 }
16 else {
17 resolver = resolve;
18 }
19 });
20 const exposedResolver = (value) => {
21 alreadyResolved = true;
22 resolvedTo = value;
23 resolver();
24 };
25 return [promise, exposedResolver];
26}
27exports.createPromiseWithResolver = createPromiseWithResolver;