首页 > 解决方案 > 捕捉承诺错误的最佳方法是什么?为什么?

问题描述

我有两个用于捕获承诺错误的代码示例。什么是更好的方法,为什么会这样?

我有这个带有 .catch() 的代码

Message.receive($scope.reference).then(function (response) {
  // on success
}).catch(function (error) {
  // on error
});

我也有这段代码,没有 .catch()

Message.receive($scope.reference).then(function (response) {
   // on success
}, function (error) {
   // on error
});

标签: javascript

解决方案


foo.then(success, error)根据是否foo引发错误执行一个或另一个回调。如果success引发错误,您将得到一个未捕获的错误,除非您链接另一个.catch.

foo.then(success).catch(error)foo 捕获由orsuccess引发的任何错误。如果foo引发错误,success则跳过。

这不是哪个更好,这取决于您要建立什么样的错误处理链。


推荐阅读