我正在使用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]
的内部时,会看到一个承诺,而不是已解决的值。
我想念什么?
答案 0 :(得分:1)
newReqs
,modifiedReqs
和deleteRequests
是axios请求的数组。根据{{3}},您无法将数组内的数组传递给axios.all
。
但是,您可以扩展每个内部数组并将生成的展平数组传递到axios.all()
:
return axios.all([...newReqs, ...modifiedReqs, ...deleteRequests]);