首页 > 解决方案 > Promise.all 里面有 Promise 链

问题描述

我有这样的方法:

doSomeRequests(listOfRequestParameters) {
  let requests = listOfRequestParameters.map(parmeter => {
    return axios.get(url + parmeter)
    .then(data => {
      const parameters= data.parameters;
      return axios.delete(url, parameters)
    })
  })
  return Promise.all(requests);
}

在这个函数中,我想为列表中的每个元素完成 API 请求 (listOfRequestParameters),但对于列表中的每个元素,我必须执行两个 API 请求。

axios 方法都返回 Promises。

问题是我确实捕获了 Promise 返回的 y doSomeRequests 方法的结果,但是如果一个 API 请求失败,我会收到 UnhandledPromiseRejectionWarning。

我错过了什么?有没有办法做这种 Promise 链?

标签: javascriptnode.jsasynchronouspromisees6-promise

解决方案


感谢@charlietfl 问我是否真的这样做doSomeRequests(..).then().catch()。结果我没有,我不小心做了,doSomeRequests(..).then().then()但不知何故确信我需要在“复杂”的 Promise 链中搜索错误。

无论如何,我很抱歉没有用的问题,谢谢你的帮助。


推荐阅读