执行帖子的 Javascript 循环,但它只执行循环中的最后一个值

Javascript loop that executes a post but it only executes the last value from the loop

提问人:noobSoloDeveloper 提问时间:12/1/2020 更新时间:12/1/2020 访问量:41

问:

我正在尝试执行多个 id 并将其添加到要执行的对象中。所以这是来自一个事件按钮函数:

{
for(var i =0; i< selectrows.length; i++){
   Action["trackid"] = selectrows[i].innerText.replace(/(^\d+)(.+$)/i, '$1');

   researchService.postExecuteAction(Action)
     .then(function(result){
     },function error(result){
     });
}
}

例如,trackid 是 111、112、113。 它只会执行 trackid 113 三次。 我也想执行 111、112。我尝试了许多不同的闭包方法来处理这些问题,但没有奏效。我可能做错了什么。请帮忙。谢谢。

JavaScript 数组循环 kendo-ui 闭包

评论

1赞 adiga 12/1/2020
postExecuteAction用 3 个不同的 .“它只会执行 trackid 113 三次”是什么意思?您是否正在访问回调内部?trackidAction["trackid"].then()
0赞 NaturalCoder 12/1/2020
你提到了所有,但没有提到 selectrows[],里面存储了什么??

答:

-1赞 Arwed Mett 12/1/2020 #1

可能是因为您在同一对象上重新分配了 Action[“trackid”]。

执行如下操作:

{
for(var i =0; i< selectrows.length; i++){
   const action = { ...Action }
   action["trackid"] = selectrows[i].innerText.replace(/(^\d+)(.+$)/i, '$1');

   researchService.postExecuteAction(action)
     .then(function(result){
     },function error(result){
     });
}
}

评论

0赞 Arwed Mett 12/1/2020
@noobSoloDeveloper 我是不是错过了什么,或者你为什么要对正确答案投反对票?
0赞 Arwed Mett 12/1/2020
确保将所有“操作”更改为“操作”
0赞 Ivar 12/1/2020
投票是匿名的,所以我不能告诉你谁投票了。但我可以告诉你,它不是 noobSoloDeveloper,因为你至少需要 125 个声誉才能投反对票
0赞 Arwed Mett 12/1/2020
啊好吧,奇怪的人:)
0赞 noobSoloDeveloper 12/2/2020
@ArwedMett 谢谢,这是正确的。调试后,它现在传递正确的操作值。但是,我的循环仍然多次只执行最后一个值。