Skip to content

timeout

创建一个在一段时间后拒绝的promise

246 bytes
since v12.3.0

使用方法

timeout 函数创建一个在指定延迟后拒绝的 promise,可以选择自定义错误消息或错误函数。

默认错误是消息为”Operation timed out”的 TimeoutError

import * as _ from "radashi";
// 1秒后以默认TimeoutError拒绝
await _.timeout(1000);
// 1秒后以自定义TimeoutError消息拒绝
await _.timeout(1000, "Custom timeout message");
// 1秒后以自定义错误类型拒绝
await _.timeout(1000, () => new Error("Custom error"));

Promise.race 的示例

使用 _.timeoutPromise.race 为异步操作设置超时是最有用的方式之一。

import * as _ from "radashi";
const someAsyncTask = async () => {
await _.sleep(10_000);
return "Task completed";
};
// 异步任务与1秒超时之间的竞争
await Promise.race([someAsyncTask(), _.timeout(1000, "Task took too long")]);