【发布时间】:2021-03-16 15:50:34
【问题描述】:
我有一个使用对象调用 executepostaction 的循环。问题是 executepostaction 只执行循环的最后一个值。我尝试了很多闭包,在这里我尝试使用 setTimeout 进行修复,但仍然没有运气。似乎是什么问题?
我的超时功能:
function MakeTimeout(fn, data, timeout) {
setTimeout(function () { fn.call(null, data); }, timeout);
}
这是来自事件函数的循环:
for (var ctr = 0; ctr < Selectrows.length; ctr++) {
var action= selectedAction;
action["trackId"] = Selectrows[ctr].innerText.replace(/(^\d+)(.+$)/i, '$1');
MakeTimeout(function (passaction) {
researchService.postExecuteAction(passaction)
.then(function (result) {
}, function error(result) {
$scope.error = result;
});
}, action, ctr * 1000);
}
请帮忙。谢谢
【问题讨论】:
标签: javascript loops closures settimeout