如何在fetch请求耗时超1000ms时执行提示等操作?
检测Fetch请求耗时并处理超时情况
当然可以实现这个需求,核心思路是用定时器设置1000ms的超时阈值,请求完成后立即清除定时器;如果定时器没被清除,就说明请求耗时超过了阈值,执行警告操作。
修改后的代码如下:
// 设置超时定时器,1000ms后触发警告 const timeoutTimer = setTimeout(() => { alert("Attention request takes more time than excepted"); }, 1000); fetch(url, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(array), }) .then((response) => { return response.json(); }) .then((data) => { console.log(data); }) .catch((error) => { // 处理请求错误,比如网络失败等情况 console.error("请求出错:", error); }) .finally(() => { // 无论请求成功还是失败,完成后都清除定时器 clearTimeout(timeoutTimer); });
关键逻辑说明:
setTimeout创建一个1000ms后执行的定时器,触发警告弹窗finally回调会在请求完成(成功或失败)后执行,用来清除定时器,避免请求完成后还弹出警告- 保留原有的
then处理响应和数据的逻辑,新增catch处理请求异常(可选,但建议加上)
内容的提问来源于stack exchange,提问作者user16365685
相关产品推荐
相关产品推荐

