【发布时间】:2018-10-16 07:21:08
【问题描述】:
我是 ES6 和一系列承诺的新手。我的情况是原始调用站点调用了一个函数(1),然后调用了另一个函数(2)。尝试让函数 2 和函数 1 根据成功或错误返回一个承诺。
这是一些示例,人为的代码:
function level2(data) {
return new Promise((resolve, reject) => {
reject('fail')
})
}
function level1(info) {
level2('abc').then((response) => {
return new Promise((resolve, reject) => {
resolve('success')
})
})
}
level1('thing').then((response) => {
console.log('response2 ' + response)
}).catch(e => {
console.log('error2 ' + e)
})
我能够成功使用一级承诺。但是当涉及到链式或嵌套式 Promise 时,我并没有正确使用它,所以使用 Promise 的最外层并没有捕捉到错误。
设置 Promise 以使两个函数(1 级和 2 级)都可以向调用者返回成功或失败的正确方法是什么?
在示例函数 (level1) 中,函数 (level2) 的错误是否会向外冒泡?
【问题讨论】:
标签: javascript ecmascript-6 promise es6-promise