@tdb/util
Version:
Shared helpers and utilities.
26 lines (23 loc) • 630 B
text/typescript
export type TimeDelay = (msecs: number, callback?: () => void) => Promise<{}>;
export type TimeWait = (msecs: number) => Promise<{}>;
/**
* Better parameter order for setTimeout returning a promise.
*/
export const delay: TimeDelay = (msecs, callback) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
try {
if (callback) {
callback();
}
resolve();
} catch (error) {
reject(error);
}
}, msecs);
});
};
/**
* Pause for the given number of milliseconds with a promise.
*/
export const wait: TimeWait = msecs => delay(msecs, () => false);