gpt4 book ai didi

angularjs - 循环内的 Angular $timeout 失败

转载 作者:行者123 更新时间:2023-12-02 23:06:51 26 4
gpt4 key购买 nike

我使用 Angular $timeout作为,

 $scope.alltexts = ["hii" , "hello" , "hehe"]
var sendtime = 60000

for (var i = 0; i < $scope.alltexts.length; i++) {
var text = $scope.alltexts[i]
$setTimeout(function() {}, (function(){$scope.addtext(text)}, sendtime + (i * 60000)));
};

$scope.addtext = function(text){
console.log(text)
}

但是每一分钟之后它只会安慰“呵呵”。意味着它只考虑最后一个值。请让我知道我应该如何获得正确的结果。

最佳答案

今天的闭包太多了,你总是传递最后一个索引...闭包将为每次迭代创建一个新的范围

 $scope.alltexts = ["hii" , "hello" , "hehe"]
var sendtime = 60000

for (var i = 0; i < $scope.alltexts.length; i++) {
(function(i){
var text = $scope.alltexts[i]
$setTimeout(function() {}, (function(){$scope.addtext(text)}, sendtime + (i * 60000)));
})(i)
};

$scope.addtext = function(text){
console.log(text)
}

关于angularjs - 循环内的 Angular $timeout 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36647102/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com