export type ResolveAfterPromise = {
- counter: () => void,
- promise: Promise<void>
+ counter: () => void;
+ promise: Promise<void>;
};
export const resolveAfter = function (timesUntilResolve: number): ResolveAfterPromise {
+ let counter = null;
+ let currentValue = 0;
- let counter = null;
- let currentValue = 0;
+ if (timesUntilResolve <= 0) {
+ throw new Error('Resolve after requires a positive integer');
+ }
- if (timesUntilResolve <= 0) {
- throw new Error('Resolve after requires a positive integer');
- }
+ const promise: Promise<void> = new Promise((resolvePromise) => {
+ counter = () => {
+ if (++currentValue === timesUntilResolve) {
+ resolvePromise();
+ }
+ };
+ });
- const promise: Promise<void> = new Promise((resolvePromise) => {
-
- counter = () => {
-
- if (++currentValue === timesUntilResolve) {
- resolvePromise();
- }
- };
- });
-
- return {
- counter,
- promise
- };
+ return {
+ counter,
+ promise
+ };
};