For循环在超时时间内具有动态数字
For Loop with dynamic numbers in timeout
我有一个for循环,它正在运行一个需要动态数字的超时函数,但在某些情况下,我得到的是最终结果,而不是增量。
这是我的代码(p.s.是的,我意识到设置'start'变量在for循环是不理想的):
var new_answer_start = 0;
var seconds = 0;
for (start=0; start<50; start++) {
new_answer_start = new_answer_start + 50;
seconds = seconds + 10000; //10 seconds
setTimeout(function(){reloadXMLDoc(xmlurl, new_answer_start);},seconds);
}
我想要完成的是每10秒增加一次函数将以new_answer_start等于50的增量运行。相反,我每隔10秒得到一次函数输出,每次从2500开始(50次循环后的最后一组数字)。我以前有过类似的问题,与闭包有关,我使用"let"来修复它。然而,当我尝试:
let new_answer_start = new_answer_start + 50;
我开始得到NaN(不是数字)错误。我认为超时会以秒(10,20,30等)增加而不是发送给函数的变量是奇怪的。我假设这是因为一旦函数在10秒后开始运行,变量增量就完成了。那么我如何将"固定"号码发送到函数?
在这里做了类似问题的研究之后,我也试着把数字放进一个闭包:
setTimeout(function(){reloadXMLDoc(xmlurl, (new_answer_start));},seconds);
但是这仍然从2500开始输出
尝试使用实际的闭包:
setTimeout((function (new_answer_start) {
return function () {
reloadXMLDoc(xmlurl, new_answer_start);
};
})(new_answer_start), seconds);
window.new_answer_start = 0;
var interval = setInterval(function() {
window.new_answer_start = window.new_answer_start + 50;
}, 10000);
相关文章:
- 如何根据用户输入的数字动态地向表单添加文本字段
- 如何从动态输入字段添加数字
- Uncaught SyntaxError:在剑道网格中动态生成列时出现意外数字
- 如何通过输入数字值动态添加文本区域输入?AngularJs.
- 在 jQuery 中选择数字动态元素
- 我是否可以动态更改带有数字的图像,然后将其打印为 PDF
- 包含动态数字的变量
- 自动查找数字总和,因为用户输入值是动态的,而不管输入的数量如何.如果用户输入的数字不是,则提醒用户
- 获取每个数字的每个动态文本框的值
- 动态添加要选择的数字
- 使用 jquery 的动态内部文本中的数字总和
- 使用变量中的数字动态选择对象
- 动态地将数字作为属性添加到现有对象
- 当用户在文本框中输入数字时,将动态获得数组元素javascript或PHP
- Angular js创建一个自定义过滤器,返回小于动态数字的所有项
- $q.all用于动态数字或承诺
- For循环在超时时间内具有动态数字
- 为Javascript中的Regex匹配带有动态数字的字符串
- 使用JavaScript添加动态数字到CSS地图Pin
- 动态数字表单控件问题