通常,两个Promise对象是跨函数调用创建的。我把承诺放在一起展示了我期望发生的事情:
new Promise((resolve, reject) => {
//function call with returned promise...
return new Promise((resolve, reject) => {
reject("rejectCall_2") //Prints nothing
})
}).catch( e1 => {
console.log('e1',e1)
})
这应该将拒绝传播到我的父承诺中。如何在外部承诺中捕获rejectCall_2?
答案 0 :(得分:2)
您不会从<p>
<button onclick="toggle_color(this);">
text inside button
</button>
text to toggle color
</p>
内部返回任何内容。无论你返回什么,都会被抛弃,你所做的就是解决和拒绝。如果你想“回报”某些东西,包括另一个承诺,你所做的就是解决这个问题。
所以你想要的是
new Promise
使用babel-node测试。
FWIW,您也可以使用立即返回胖箭头格式并为自己保留一些花括号:
new Promise((resolve, reject) => {
//function call with returned promise...
resolve(new Promise((resolve, reject) => {
^^^^^^^
reject("rejectCall_2")
}));
}).catch(e1 => {
console.log('e1', e1)
})
我会注意到这些意见表明你可能会对“明确的承诺构造函数反模式”感到内疚,你构建一个承诺,只能通过你可能刚才用过的其他承诺来解决或拒绝它。第一名。我假设你的例子是一个旨在展示你特定问题的人造例子。