【问题标题】:Callback to $interval function回调 $interval 函数
【发布时间】:2015-04-17 03:00:05
【问题描述】:

如何确保函数runAfterLoopFinishes()$interval 完成后运行?现在它在第一次定义循环后立即运行。

var loop = $interval(function () {
  // Do something great 10 times
}, 1000, 10);

// To run after looping
runAfterLoopFinishes();

【问题讨论】:

    标签: javascript angularjs settimeout


    【解决方案1】:

    $interval 返回一个承诺。

    var loop = $interval(function () {
      // Do something great 10 times
    }, 1000, 10);
    
    loop.then(function(){
      // To run after looping
      runAfterLoopFinishes();
    }
    

    每次迭代后都会通知$interval 承诺,但只会在最后一次之后解决。

    【讨论】:

      【解决方案2】:

      如果你想确保函数 a 在函数 b 之后运行,async 将有助于控制它。

      async.series([
          function(callback){     // function a
              // do some stuff ...
              callback(null, 'one');
          },
          function(callback){     // function b
              // do some more stuff ...
              callback(null, 'two');
          }
      ],
      function(err, results){
                                  // results 
      });
      

      【讨论】:

      • AngularJS 的 $interval 返回一个承诺——使用它比使用围绕节点样式回调设计的异步库要简单得多。
      猜你喜欢
      • 2015-11-27
      • 1970-01-01
      • 2016-07-23
      • 1970-01-01
      • 1970-01-01
      • 2019-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多