angularjs – Promises – 错误回调与catch
发布时间:2020-12-17 09:17:32 所属栏目:安全 来源:网络整理
导读:有人告诉我使用错误回调与catch函数之间是否存在差异,当使用$q.promise时? 例如.是代码的两个代码功能等同吗? function doSomething0() { var deferred = $q.defer(); ... return deferred.promise; } doSomething0() .then(doSomething1) .then(doSomethi
有人告诉我使用错误回调与catch函数之间是否存在差异,当使用$q.promise时?
例如.是代码的两个代码功能等同吗? function doSomething0() { var deferred = $q.defer(); ... return deferred.promise; } doSomething0() .then(doSomething1) .then(doSomething2) .then(doSomething3) .catch(function (err) { // do something with `err` }); 与 function doSomething0() { var deferred = $q.defer(); ... return deferred.promise; } function errorHandler(err) { // do something with `err` } doSomething0() .then(doSomething1,errorHandler) .then(doSomething2,errorHandler) .then(doSomething3,errorHandler); 如果是这样,为什么要使用第二个?它看起来比较丑陋,导致我的意见中更多的代码重复?
两者都会实现同样的事情,除了第二个可能会运行errorHandler三次(而不是一次).你是正确的,它带来了一些代码重复,但它也允许您处理发生的任何错误并继续您的链条:
function errorHandler(err) { //log error,continue return $q.resolve('default value or something'); } doSomething0() .then(doSomething1,errorHandler) .then(doSomething2,errorHandler) .then(doSomething3,errorHandler); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |