Han*_*Sun 3 javascript asynchronous promise ecmascript-6
以下是一个例子:
var promise = new Promise(function(resolve, reject) {
throw new Error('test');
});
promise.catch(function(error) {
console.log(error + ' 1 ');
return error
}).catch(function(error) {
console.log(error + ' 2 ');
return error
})
Run Code Online (Sandbox Code Playgroud)
代码的结果是:
Error: test 1
Run Code Online (Sandbox Code Playgroud)
可以看出,第二次catch调用不起作用.这是否意味着Promise无法使用链式语法来处理错误catch?有没有办法将当前错误传递给下一个catch()调用?
返回错误不会让它击中下一个catch.您需要throw再次出错:
promise.catch(function(error) {
console.log(error + ' 1 ');
throw error
}).catch(function(error) {
console.log(error + ' 2 ');
return error
})
Run Code Online (Sandbox Code Playgroud)
-> Error: test 1
-> Error: test 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |