javascript - 处理不发回请求(不捕获或不执行 .then)的 axios 的最佳实践是什么?
问题描述
我遇到过这样的情况,可能是因为连接不好,api没有响应,它跳过了.then和.catch。在这种情况下,错误处理的最佳做法是什么?如果根本没有回应,我想发出警报。
const getPic () => {
axios({
url: '/users/avatar',
method: 'GET',
headers: {
'Authorization': "Bearer " + token,
},
data: {avatar: avatarUrl},
responseType: 'blob',
}).then((response) => {
log(response);
let blob = URL.createObjectURL(response.data)
localStorage.setItem('image', blob);
}.catch(error) {
console.log(error)
}
}
解决方案
你应该设置一个timeout
在没有响应的情况下会导致 promise 被拒绝的值。
axios({
url: '/users/avatar',
method: 'GET',
headers: {
'Authorization': "Bearer " + token,
},
timeout: 1000,
data: {avatar: avatarUrl},
responseType: 'blob',
})
~``
推荐阅读
- video - ffmpeg - 在两次之间向视频添加文本
- solid-principles - 单一责任原则与开闭原则
- javascript - 如何使用 Mailjet 进行身份验证而不会出现与 node_modules 相关的错误?
- laravel - 航海者 Laravel axios 获得 405
- csv - 将 csv 导入 sqlite3 插入失败
- javascript - 如何在 Angular Binding 中编写 Javascript?
- javascript - 使用“this”进行模糊处理后的jQuery焦点
- javascript - Firestore如何停止Transaction?
- gstreamer - GStreamer 预录
- java - org.springframework.web.bind.MissingServletRequestParameterException,tomcat 无法获取日期