【问题标题】:Unable to catch exceptions when using axios.all使用 axios.all 时无法捕获异常
【发布时间】:2020-08-21 06:16:39
【问题描述】:

我正在使用 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] 内部时,我看到的是一个承诺,而不是解析的值。

我错过了什么?

【问题讨论】:

    标签: javascript reactjs asynchronous promise axios


    【解决方案1】:

    newReqsmodifiedReqsdeleteRequests 是 axios 请求的数组。根据docs,您不能将数组内的数组传递给axios.all

    但是,您可以展开每个内部数组并将生成的扁平数组传递给axios.all()

    return axios.all([...newReqs, ...modifiedReqs, ...deleteRequests]);
    

    【讨论】:

    • 不能再感谢了,只需要节省大量的精力。谢谢!
    猜你喜欢
    • 2018-07-21
    • 2021-09-20
    • 2022-01-21
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多