【问题标题】:how can i use $interval in for loop我如何在 for 循环中使用 $interval
【发布时间】:2015-06-15 11:16:52
【问题描述】:

您好,我想在 for 循环中运行 $interval

我做了什么

  • 我在下面的代码中实现了自动刷新
  • 我是] 使用状态队列对象检查数据数组
  • 然后我调用刷新实例(这是一个 ajax 调用来获取 实例的状态)
  • 但假设如果有多个实例作为 status 然后用最后一个刷新实例

我想要什么 我想刷新所有的isntnaces

例如:

data=[{id:1,status:'queued'},{id:2,status:'active'},{id:3,status:'queued'},{id:4,status:'active'},{id:5,status:'queued'}];

那么 id:5 instnace 只是令人耳目一新,但我想要像 1,3,5 这样的所有实例

for (var i = 0; i < data.length; i++)
{   
  if(data[i].status =='queued')
  {
    var id = data[i].id;
    promiseObj[id] = $interval( function(){ $scope.refreshInstance('active',id); }, 20000);

  }
}

【问题讨论】:

    标签: javascript jquery angularjs setinterval


    【解决方案1】:

    这里的问题是closure inside a loop的使用。

    但在这种情况下,您可以使用更简单的forEach() 循环来修复它

    angular.forEach(data, function (item, idx) {
        if (item.status == 'queued') {            
            promiseObj[item.id] = $interval(function () {
                $scope.refreshInstance('active', item.id);
            }, 20000);
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-07
      • 2015-04-11
      • 1970-01-01
      • 2014-08-05
      • 2022-11-11
      • 2019-01-06
      • 2014-11-01
      • 1970-01-01
      相关资源
      最近更新 更多