向异步函数添加超时可以使用以下方法:
示例代码:
function timeoutAsyncFunction(asyncFunc, timeout) {
return Promise.race([
asyncFunc(),
new Promise((resolve, reject) => {
setTimeout(() => {
reject(new Error('Timeout'));
}, timeout);
})
]);
}
// 使用示例
timeoutAsyncFunction(asyncFunc, 5000)
.then(result => {
// 异步函数完成
console.log(result);
})
.catch(error => {
// 超时或异步函数抛出错误
console.error(error);
});
示例代码:
async function timeoutAsyncFunction(asyncFunc, timeout) {
const promise = asyncFunc();
const timer = new Promise((resolve, reject) => {
setTimeout(() => {
reject(new Error('Timeout'));
}, timeout);
});
return Promise.race([promise, timer]);
}
// 使用示例
timeoutAsyncFunction(asyncFunc, 5000)
.then(result => {
// 异步函数完成
console.log(result);
})
.catch(error => {
// 超时或异步函数抛出错误
console.error(error);
});
这些方法可以在异步函数中添加超时功能,确保在一定时间内得到结果或执行相应的超时处理逻辑。
领取专属 10元无门槛券
手把手带您无忧上云