如何解决使用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(`/`,config));
const deleteRequests = deletedCircuitTrays.map(b => axios.delete(`/`,config));
return axios.all([newReqs,modifiedReqs,deleteRequests]);
}
updateBrandData(newCircuitTrays,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请求的数组。根据{{3}},您无法将数组内的数组传递给axios.all
。
但是,您可以扩展每个内部数组并将生成的展平数组传递到axios.all()
:
return axios.all([...newReqs,...modifiedReqs,...deleteRequests]);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。