Javascript 链AngularJS$超时,间隔递减
我正在尝试创建一个AngularJS应用程序,它获取一个项目数组,然后在该数组中循环(快速启动,然后减速),直到它到达最后一个项目。它应该模拟车轮的旋转。然而,AngularJS在执行此操作时似乎抛出了一个内部错误 TypeError:undefined不是返回logFn.apply的函数(控制台,args) 我是做错了什么,还是有其他的方法来创造这种行为?我现在写的方式Javascript 链AngularJS$超时,间隔递减,javascript,angularjs,Javascript,Angularjs,我正在尝试创建一个AngularJS应用程序,它获取一个项目数组,然后在该数组中循环(快速启动,然后减速),直到它到达最后一个项目。它应该模拟车轮的旋转。然而,AngularJS在执行此操作时似乎抛出了一个内部错误 TypeError:undefined不是返回logFn.apply的函数(控制台,args) 我是做错了什么,还是有其他的方法来创造这种行为?我现在写的方式 var timeout = 250; vm.locations = ["A", "B", "C", "D", "E"]; v
var timeout = 250;
vm.locations = ["A", "B", "C", "D", "E"];
vm.selectedLocation = "N/A";
vm.start = function () {
getRandomLocation();
};
function getRandomLocation() {
vm.selectedLocation = vm.locations[Math.floor(Math.random() * vm.locations.length)];
timeout = timeout * 2;
if (timeout < 5000) {
$timeout(getRandomLocation(), timeout);
} else {
log(vm.selectedLocation);
}
}
var超时=250;
vm.locations=[“A”、“B”、“C”、“D”、“E”];
vm.selectedLocation=“不适用”;
vm.start=函数(){
getRandomLocation();
};
函数getRandomLocation(){
vm.selectedLocation=vm.locations[Math.floor(Math.random()*vm.locations.length)];
超时=超时*2;
如果(超时<5000){
$timeout(getRandomLocation(),timeout);
}否则{
日志(vm.selectedLocation);
}
}
您的问题出在您的日志
调用中-向我们显示您定义日志
的位置和方式,或将其交换到控制台。日志
-您还应该将getRandomLocation传递到$timeout
,而不是调用它,这也可能是一个带有承诺的循环。解决方案是将getRandomLocation传递到$timeout
。它应该是$timeout(getRandomLocation,timeout)代码>是的,我是这么说的,但是你犯的错误不是因为这个。