【问题标题】:Javascript loop that executes a post but it only executes the last value from the loop执行帖子但仅执行循环中的最后一个值的 Javascript 循环
【发布时间】:2020-12-01 14:53:45
【问题描述】:

我正在尝试执行多个 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 3 次。 我也想执行111、112。我尝试了许多不同的关闭方式来处理这些问题,但没有奏效。我可能做错了什么。请帮忙。谢谢。

【问题讨论】:

  • postExecuteAction 被 3 个不同的 trackid 调用。你是什​​么意思“它只会执行trackid 113 3次”?您是否在.then() 回调中访问Action["trackid"]
  • 你提到了所有但没有提到selectrows[],里面存储了什么??

标签: javascript arrays loops kendo-ui closures


【解决方案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){
     });
}
}

【讨论】:

  • @noobSoloDeveloper 我是否遗漏了什么,或者您为什么要否决正确答案?
  • 确保将所有“Action”改为“action”
  • 投票是匿名的,所以我不能告诉你是谁投票的。但我可以告诉你,这不是 noobSoloDeveloper,因为你至少需要 125 声望to be able to downvote
  • 啊好吧,奇怪的人:)
  • @ArwedMett 谢谢你这是正确的。调试后,它现在传递正确的操作值。但是,我的循环仍然多次执行最后一个值。
猜你喜欢
  • 1970-01-01
  • 2014-01-11
  • 2019-06-01
  • 2021-09-02
  • 2019-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多