Angular $q with two "then": 如果第一个到达错误处理程序,第二个会被调用吗?

Angular $q with two "then": will second then be called if first reaches error handler?

$q.all([firstPromise, secondPromise])
    .then(successHandler1, errorHandler1)
    .then(successHandler2, errorHandler2);

调用errorHandler1后会调用successHandler2吗?

如果reject回调的值returns,则执行成功回调,如果抛出错误,则执行错误回调。

var app = angular.module('myApp', [])
app.controller('myController', function ($q) {
  $q(function (resolve, reject) {
    reject('1');
  })
  .then(
    function(resolve) {
      console.log('resolve 1');
      return 'resolve 1';
    },
    function(reject) {
      console.log('reject 1');
      throw 'reject 1'
    })
  .then(
    function(resolve) {
      console.log('resolve 2');
    },
    function(reject) {
      console.log('reject 2');
      return 'reject 2'
    })
  .then(
    function(resolve) {
      console.log('resolve 3');

    },
    function(reject) {
      console.log('reject 3');
    })
})

http://plnkr.co/edit/k2UprgZd0J4RP8PtDye2?p=preview

控制台:

拒绝 1

拒绝 2

解决 3

调用顺序是这样的:

successHandler1 然后是 successHandler2 要么 errorHandler1 errorHandler2