24 lines
735 B
JavaScript
Raw Normal View History

2026-05-31 13:21:13 +02:00
import { TimeoutError } from "../error/TimeoutError.mjs";
import { delay } from "./delay.mjs";
//#region src/promise/timeout.ts
/**
* Returns a promise that rejects with a `TimeoutError` after a specified delay.
*
* @param {number} ms - The delay duration in milliseconds.
* @returns {Promise<never>} A promise that rejects with a `TimeoutError` after the specified delay.
* @throws {TimeoutError} Throws a `TimeoutError` after the specified delay.
*
* @example
* try {
* await timeout(1000); // Timeout exception after 1 second
* } catch (error) {
* console.error(error); // Will log 'The operation was timed out'
* }
*/
async function timeout(ms) {
await delay(ms);
throw new TimeoutError();
}
//#endregion
export { timeout };