javascript - 使用 axios.all 时无法捕获异常
问题描述
我正在使用 axios.all 发送几个合并请求。
我.map
用来创建 axios 请求并将它们传递给 axios.all。
function updateCircuitTrayData(newCircuitTrays, updatedCircuitTrays, deletedCircuitTrays, config) {
const newReqs = newCircuitTrays.map(b => axios.post(`/`, b, config));
const modifiedReqs = updatedCircuitTrays.map(b => axios.put(`/`, b, config));
const deleteRequests = deletedCircuitTrays.map(b => axios.delete(`/`, b, config));
return axios.all([newReqs, modifiedReqs, deleteRequests]);
}
updateBrandData(newCircuitTrays, updatedCircuitTrays, deletedCircuitTrays, config)
.then(
axios.spread((...response) => {
// tslint:disable-next-line:no-console
console.log(`Data`, response);
})
)
.catch(err => {
// tslint:disable-next-line:no-console
console.log(`Err`, err);
});
正在调用 API。但是, onError 永远不会出现在 catch 块中。同样对于成功调用,我正在使用axios.spread
. 但是当我往里面看时response[0]
,我看到的是一个承诺,而不是已解决的值。
我错过了什么?
解决方案
newReqs
,modifiedReqs
并且deleteRequests
是 axios 请求的数组。根据文档,您不能将数组内的数组传递给axios.all
.
但是,您可以展开每个内部数组并将生成的扁平数组传递给axios.all()
:
return axios.all([...newReqs, ...modifiedReqs, ...deleteRequests]);
推荐阅读
- php - 在获取日期后选择的日期范围选择器标签
- alexa-skills-kit - 我没有使用 scan() nodejs 从 dynamodb 获取数据
- python - 在数据框的多列中用空格替换撇号和大括号
- flutter - 从 BLE 设备抖动接收到的不完整响应
- java - 在heroku上玩scala部署
- python - Swift socket.io 与服务器 python-socketio 兼容的版本
- php - FastCGI 并发。IIS 如何创建新进程?
- sorting - DolphinDB 中的多个排序条件
- python - Plotly 在折线图的 x 轴上显示不必要的额外值
- ios - SwiftUI 导航栏标题