zalgo-promise
Version:
Javascript module template.
24 lines (22 loc) • 480 B
JavaScript
var activeCount = 0;
var flushPromise;
function flushActive() {
if (!activeCount && flushPromise) {
var promise = flushPromise;
flushPromise = null;
promise.resolve();
}
}
export function startActive() {
activeCount += 1;
}
export function endActive() {
activeCount -= 1;
flushActive();
}
export function awaitActive(Zalgo) {
// eslint-disable-line no-undef
var promise = flushPromise = flushPromise || new Zalgo();
flushActive();
return promise;
}