$q.when 布尔值传递时承诺拒绝

$q.when promise rejection when boolean value passed

我的代码中有以下部分,我知道 $q.when 将解决具有给定值的承诺并且永远不会被拒绝。在我的例子中,我将布尔值 true 或 false 传递给这个段,我可以看到错误回调函数在成功回调函数之后执行。 简而言之,一旦将值(true/false) 传递给'when',首先在$q.when 中执行一次,然后执行next then 部分。

我的问题是为什么解析成功后调用错误回调函数?

   $q.when(true/false) 
        .then(function(data) {
            if (data) {
                return doSave();
            }
        })
        .then(function() {
            goNextPage();
        });

使用.catch() 进行错误回调。 .then() 是成功回调。您已经添加了两个成功回调。