angularjs – Promises – 错误回调与catch

前端之家收集整理的这篇文章主要介绍了angularjs – Promises – 错误回调与catch前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有人告诉我使用错误回调与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);
原文链接:https://www.f2er.com/angularjs/140720.html

猜你在找的Angularjs相关文章