我如何在for循环中使用$interval

how can i use $interval in for loop

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

我做了什么

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

例如:

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

然后 id:5 实例只是令人耳目一新,但我想要所有实例,如 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);

  }
}

这里的问题是 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);
    }
});