// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. /** * Delay resolution of `promise` * * @template T type that promise will yield, defaults to `void` * @param {Promise} promise an optional promise to delay * @param {number} milliseconds how long to delay * @returns {Promise} a promise that will resolve to the result of `promise`, delayed by `milliseconds`. */ export function delay(promise: Promise, milliseconds: number): Promise; /** * Return a promise that resolves after `milliseconds`. * * @param {number} milliseconds how long to delay * @returns {Promise} a promise that will resolve to the result of `promise`, delayed by `milliseconds`. */ export function delay(milliseconds: number): Promise; /** * @internal */ export function delay(promiseOrmilliseconds: Promise | number, maybeMilliseconds?: number): Promise { if (typeof promiseOrmilliseconds === 'number') { return new Promise((resolve) => setTimeout(resolve, promiseOrmilliseconds)); } return new Promise((resolve) => setTimeout(() => resolve(promiseOrmilliseconds), maybeMilliseconds)); }