11 lines
325 B
TypeScript
11 lines
325 B
TypeScript
export function sleep(ms: number, signal?: AbortSignal) {
|
|
return new Promise((resolve, reject) => {
|
|
const timeout = setTimeout(resolve, ms);
|
|
if (signal) {
|
|
signal.addEventListener('abort', () => {
|
|
clearTimeout(timeout);
|
|
reject(new DOMException('Aborted', 'AbortError'));
|
|
});
|
|
}
|
|
});
|
|
} |