如何处理catch块中的promise抛出的错误?
例如,
try {
// some other functions/code that can also throw error
var promise = // a service that returns new Promise() object
promise.then(function(data) {
//some business logic
}, function(err) {
throw new Error(err); // never gets caught in catch block
});
} catch(error) {
// do something with error
console.log(error);
}
1)是否可以处理从promise中抛出的try catch块中的错误?
2)是否有更好的方法来处理常见错误?
答案 0 :(得分:3)
Promise异步工作,使它们在你所拥有的catch
块的范围之外执行。这就是他们拥有自己版本catch
-
promise
.then(function(data) {
//some business logic
return anotherPromise;
})
.then(function(data) {
//some other business logic
})
// this keeps chaining as long as needed
.catch(function(err) {
// You will get any thrown errors by any of the
// chained 'then's here.
// Deal with them here!
});
这是推荐的方法。