在下面的代码中,如果第一个请求失败并且第二个请求给出响应,则cp在promise中同时具有失败和成功响应。我只需要成功的回应。
cp = getcp() // getcp returns promises
cp.catch(ex => {
if (ex) {
cp = getcp()
cp.catch(ex => {
cp = {}
})
} else {
cp = {}
}
})
我试过,解决但没有用。请帮助我获得成功回复。提前谢谢。
答案 0 :(得分:0)
你的链应该是这样的:
getcp()
.catch(ex => {
if (ex) {
return getcp(); // return new promise which may get caught
} else {
return {}; // return "success" value
}
})
.catch(() => ({})) // catch failure of second attempt
.then(res => console.log('result is', res)); // use final result
您永远不会覆盖promise对象,而是构建一系列失败处理程序和返回成功值的函数。