diff options
Diffstat (limited to 'src/utils/resolve_after.js')
| -rw-r--r-- | src/utils/resolve_after.js | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/utils/resolve_after.js b/src/utils/resolve_after.js new file mode 100644 index 0000000..0884401 --- /dev/null +++ b/src/utils/resolve_after.js @@ -0,0 +1,25 @@ +export const resolveAfter = function (timesUntilResolve) { + + let counter = null; + let currentValue = 0; + + if (typeof timesUntilResolve !== 'number' || timesUntilResolve <= 0) { + throw new Error('Resolve after requires a positive integer'); + } + + const promise = new Promise((resolvePromise) => { + + counter = () => { + + if (++currentValue === timesUntilResolve) { + resolvePromise(); + } + }; + }); + + return { + counter, + promise + }; + +}; |