@storm-stack/utilities
Version:
This package includes various base utility class and various functions to assist in the development process.
31 lines (30 loc) • 670 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.delay = delay;
exports.sleep = sleep;
var _types = require("../types.cjs");
function delay(ms, {
signal
} = {}) {
return new Promise((resolve, reject) => {
const abortError = () => {
reject(new _types.AbortError());
};
const abortHandler = () => {
clearTimeout(timeoutId);
abortError();
};
if (signal?.aborted) {
return abortError();
}
const timeoutId = setTimeout(resolve, ms);
signal?.addEventListener("abort", abortHandler, {
once: true
});
});
}
function sleep(ms, options) {
return delay(ms, options);
}