为什么我会收到语法错误:意外标识符'为什么我的浏览器在运行此代码后陷入连续循环?我根据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);
}
答案 0 :(得分:2)
正如@vlaz所解释的那样,如果你想“延迟”某些东西,你需要setTimeout
。 setInterval
会不断调用提供的回调。
我有点困惑为什么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
的使用,代码会一再重复。在你的情况下每一秒。