Files
sashinexists/node_modules/promise-make-counter/dist/index.js
2024-12-07 13:18:31 +11:00

25 lines
581 B
JavaScript

/* IMPORT */
import makeNakedPromise from 'promise-make-naked';
/* MAIN */
const makeCounterPromise = () => {
const { promise, resolve, isPending } = makeNakedPromise();
let counter = 0;
const increment = () => {
counter += 1;
};
const decrement = () => {
counter -= 1;
if (counter)
return;
resolve();
};
const init = () => {
increment();
queueMicrotask(decrement);
};
init();
return { promise, isPending, increment, decrement };
};
/* EXPORT */
export default makeCounterPromise;