MCPcopy Create free account
hub / github.com/denoland/std / delay

Function delay

async/delay.ts:51–78  ·  view source on GitHub ↗
(ms: number, options: DelayOptions = {})

Source from the content-addressed store, hash-verified

49 * ```
50 */
51export function delay(ms: number, options: DelayOptions = {}): Promise<void> {
52 const { signal, persistent = true } = options;
53 if (signal?.aborted) return Promise.reject(signal.reason);
54 return new Promise((resolve, reject) => {
55 const abort = () => {
56 clearTimeout(+i);
57 reject(signal?.reason);
58 };
59 const done = () => {
60 signal?.removeEventListener("abort", abort);
61 resolve();
62 };
63 const i = setArbitraryLengthTimeout(done, ms);
64 signal?.addEventListener("abort", abort, { once: true });
65 if (persistent === false) {
66 try {
67 Deno.unrefTimer(+i);
68 } catch (error) {
69 if (!(error instanceof ReferenceError)) {
70 clearTimeout(+i);
71 throw error;
72 }
73 // deno-lint-ignore no-console
74 console.error("`persistent` option is only available in Deno");
75 }
76 }
77 });
78}
79
80const I32_MAX = 2 ** 31 - 1;
81

Callers 15

pollFunction · 0.90
delay_test.tsFile · 0.90
assertRejectsReasonFunction · 0.90
fnFunction · 0.90
fnFunction · 0.90
mapNumberFunction · 0.90
retryFunction · 0.90
deadline_test.tsFile · 0.90

Calls 1

Tested by

no test coverage detected