@4players/odin-common
Version:
A collection of commonly used type definitions and utility functions across ODIN web projects
23 lines (22 loc) • 686 B
JavaScript
export function sleep(ms, value) {
if (ms <= 0) {
return Promise.resolve(value);
}
return new Promise((resolve) => setTimeout(() => resolve(value), ms));
}
export function abortableSleep(ms, signal) {
if (signal.aborted) {
return Promise.resolve('aborted');
}
return new Promise((resolve) => {
const onAbort = () => resolve('aborted');
signal.addEventListener('abort', onAbort, { once: true });
setTimeout(() => {
signal.removeEventListener('abort', onAbort);
resolve(undefined);
}, ms);
});
}
export function nextTick() {
return new Promise((resolve) => setTimeout(resolve, 0));
}