我有一个这样的方法:
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);
}
在此函数中,我想为列表中的每个元素(listOfRequestParameters)完成API请求,但是对于列表中的每个元素,我必须执行两个API请求。
axios方法都返回Promises。
问题是我确实捕获了Promise返回的y doSomeRequests方法的结果,但是如果一个API请求失败,则会收到UnhandledPromiseRejectionWarning。
我想念什么?有没有办法做这种承诺链?
答案 0 :(得分:0)
感谢@charlietfl询问我是否真的export const getSport(state, sport) {
return state.cards[sport];
}
。原来我没有,我不小心做了doSomeRequests(..).then().catch()
,但是某种程度上说服了我需要在“复杂的” Promise链中搜索错误。
无论如何,对于这个无用的问题,我感到抱歉,谢谢您的帮助。
答案 1 :(得分:0)
您需要确保map调用返回一个promise列表,通过async / await简化操作,您会得到一些帮助:
async doSomeRequests(listOfRequestParameters) {
return Promise.all(listOfRequestParameters.map(async parmeter => {
const data = await axios.get(url + parameter);
const parameters = data.parameters;
return axios.delete(url, parameters);
}));
}
await doSomeRequests(listOfRequestParameters);