UNPKG

@4players/odin-common

Version:

A collection of commonly used type definitions and utility functions across ODIN web projects

28 lines (27 loc) 835 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sleep = sleep; exports.abortableSleep = abortableSleep; exports.nextTick = nextTick; function sleep(ms, value) { if (ms <= 0) { return Promise.resolve(value); } return new Promise((resolve) => setTimeout(() => resolve(value), ms)); } 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); }); } function nextTick() { return new Promise((resolve) => setTimeout(resolve, 0)); }