Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | 1x 5x 1x 4x 4x | let fallbackDelay = 500;
/**
* If requests resolve instantly it can lead to users feeling like nothing *really* happened.
* This just ensures a request always takes a *little* bit of time so that spinners and what not can appear.
*
* @param promise The promise to return upon resolving
* @param ms The time to wait
* @returns A promise that resolves based on the time specified
*/
export async function delay(): Promise<void>;
export async function delay(ms: number): Promise<void>;
export async function delay<T>(promise: Promise<T>): Promise<T>;
export async function delay<T>(promise: Promise<T>, ms: number): Promise<T>;
export async function delay<T>(promise?: Promise<T> | number, ms?: number): Promise<T | void> {
if (typeof promise === 'number') {
return await new Promise((resolve) => setTimeout(resolve, promise));
}
const [result] = await Promise.all([promise, new Promise((resolve) => setTimeout(resolve, ms ?? fallbackDelay))]);
return result;
}
/* c8 ignore start */
export namespace delay {
/* c8 ignore end */
/**
* Overrides the default delay value
*/
export function fallback(delay: number) {
fallbackDelay = delay;
}
}
|