@storm-stack/utilities
Version:
This package includes various base utility class and various functions to assist in the development process.
21 lines (20 loc) • 545 B
JavaScript
import { AbortError } from "../types.mjs";
export function delay(ms, { signal } = {}) {
return new Promise((resolve, reject) => {
const abortError = () => {
reject(new AbortError());
};
const abortHandler = () => {
clearTimeout(timeoutId);
abortError();
};
if (signal?.aborted) {
return abortError();
}
const timeoutId = setTimeout(resolve, ms);
signal?.addEventListener("abort", abortHandler, { once: true });
});
}
export function sleep(ms, options) {
return delay(ms, options);
}