语法错误:AngularJS $ http.get中for循环中的意外标识符

时间:2016-10-21 21:37:00

标签: javascript angularjs

为什么我会收到语法错误:意外标识符'为什么我的浏览器在运行此代码后陷入连续循环?我根据API请求指南使用setInterval来延迟对API的请求。

var tempArray = []; 
var arr = [];   
//angular controller    
for (var i = 0; i < 10; i++) {
    setInterval($http.get(url).success(function(data) {
        tempArray.push(data);
        arr.push(tempArray);
    }), 1000);
}

2 个答案:

答案 0 :(得分:2)

正如@vlaz所解释的那样,如果你想“延迟”某些东西,你需要setTimeoutsetInterval会不断调用提供的回调。

我有点困惑为什么API指导方针要求“延迟”请求......它们是否意味着“去抖”?

无论哪种方式......“意外标识符”语法错误都是因为您没有将函数作为setInterval的第一个参数传递。你需要:

setTimeout(function() {
  $http.get(url).success(function(data) {
    tempArray.push(data);
    arr.push(tempArray);
  });
}, 1000);

$http.get(url).success()不会返回setTimeout可以调用的函数,因此您无法直接传递它。

答案 1 :(得分:0)

您必须将$http添加到控制器。像:

myApp.controller('MainController', function MainController($scope,$http) {...}

随着setInterval的使用,代码会一再重复。在你的情况下每一秒。