const immediateDelayPromise = new Promise((resolve) => resolve(undefined)) /** * Returns a promise that resolves after zero milliseconds. */ export function delay(): Promise /** * Returns a promise that resolves after a given number of milliseconds. */ export function delay(ms: number): Promise export function delay(ms: number = 0): Promise { if (ms > 0) { return new Promise((resolve) => setTimeout(resolve, ms)) } return immediateDelayPromise }