【发布时间】:2021-06-12 14:19:34
【问题描述】:
如果我有 2 个 Promise,并且我希望仅在 Promise1 被拒绝时在 Promise 2 中返回 Promise 1,否则 Promise2 继续并返回 Promise.resolve() 解释:
const promise1 =(cond)=>{
const x = true;
if(!cond){
return Promise.reject(new Error('Error'))
}
return Promise.resolve('Done')
}
const promise2 =()=> {
//i want to return promise1 if it rejected
return promise1(false)
.then(res=>res)
.catch(e=>e)
//otherwise return Promise.resolve
return Promise.resolve('ok')
}
【问题讨论】:
-
return promise1(false).then(() => "ok").catch((err) => Promise.reject(err))?或者您可以使用async/await语法编写它,这可能会使意图更清晰。
标签: javascript promise