source: node_modules/es-toolkit/dist/promise/delay.mjs@ a762898

Last change on this file since a762898 was a762898, checked in by istevanoska <ilinastevanoska@…>, 5 months ago

Added visualizations

  • Property mode set to 100644
File size: 658 bytes
Line 
1import { AbortError } from '../error/AbortError.mjs';
2
3function delay(ms, { signal } = {}) {
4 return new Promise((resolve, reject) => {
5 const abortError = () => {
6 reject(new AbortError());
7 };
8 const abortHandler = () => {
9 clearTimeout(timeoutId);
10 abortError();
11 };
12 if (signal?.aborted) {
13 return abortError();
14 }
15 const timeoutId = setTimeout(() => {
16 signal?.removeEventListener('abort', abortHandler);
17 resolve();
18 }, ms);
19 signal?.addEventListener('abort', abortHandler, { once: true });
20 });
21}
22
23export { delay };
Note: See TracBrowser for help on using the repository browser.