如何在await axios.get请求中添加setTimeout实现调用延迟
实现方案
你可以先封装一个Promise版本的延迟工具函数,在post请求完成后、发起get请求前等待指定时长即可,代码修改如下:
// 通用延迟工具函数,参数为延迟毫秒数 const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms))
修改后的业务代码:
export function functionName() { return useMutation( async filter => { const {data} = await axios.post<Core.Paths.CreateResponse.RequestBody, AxiosResponse<string>>( "/path/api/response", filter ); // 此处添加延迟,示例为延迟2000ms后再发起get请求 await delay(2000); const {data: blob} = await axios.get(`/path/api/document/${data}`, {responseType: "blob"}); return URL.createObjectURL(blob); } // 注:原代码此处多了一个多余的闭合大括号,已修正删除 ); }
补充说明:
- 如果你需要的是延迟处理get请求的返回结果,把
await delay(2000)放到axios.get请求的下一行即可 - 延迟时长可根据需求自定义,替换2000为你需要的毫秒数即可
- 不想单独封装延迟函数的话,可直接在需要延迟的位置写内联代码:
await new Promise(resolve => setTimeout(resolve, 2000))
内容的提问来源于stack exchange,提问作者inconnu
相关产品推荐
相关产品推荐

