angularjs - 拒绝链中的 promise

标签 angularjs promise

所以这可能是微不足道的,但我正在做一些概念证明,并试图拒绝 promise 链中间的 promise ,但我没有得到我期望的结果。

app.controller('MainCtrl', function($scope, $q) {
    var def = $q.defer();

    def.promise
    .then(testPromiseReject())
    .then(
      function(){
        console.log("SUCCESS")
      }, 
      function(){
        console.log("FAIL")
      });

    def.resolve();

    function testPromiseReject(action)
    {
      return $q.reject()
    }
  });

我认为我正在创建一个最初解决的 promise ,但在第一个 then 中,我有一个函数试图拒绝 promise 链的其余部分。上面的代码将 "SUCCESS" 打印到控制台。为什么它不拒绝链的其余部分?

最佳答案

该行有问题...

.then(testPromiseReject())

它只需要删除(),这样它就不会立即执行...

.then(testPromiseReject)

fiddle ... http://jsfiddle.net/5LVEE/1/

关于angularjs - 拒绝链中的 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21764752/

相关文章:

angularjs - 缓存时同步获取数据,不可用时异步获取数据

javascript - 通过JS值判断输入的值

javascript - 如何在javascript中使用promise获取多个图像文件信息

javascript - AngularJS : Shared Service property not bound to controllers

angular - $q.when 在 Angular 中

css - Bootstrap collapsible 将元素推到下一列

javascript - 指定要在特定页面上使用的指令的 Controller

javascript - 使用正则表达式检查姓名、10位手机号码和12位号码,使用ng-blur和AngularJS中的匹配功能

javascript - 然后 axios.get 的代码未完成并捕获错误

javascript - Promises.all() 在具有 'promised' 属性的对象数组上