Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在下划线.js中的每个循环的每次迭代中添加延迟?_Javascript_Loops_Underscore.js - Fatal编程技术网

Javascript 如何在下划线.js中的每个循环的每次迭代中添加延迟?

Javascript 如何在下划线.js中的每个循环的每次迭代中添加延迟?,javascript,loops,underscore.js,Javascript,Loops,Underscore.js,如何在每个循环的每次迭代中添加延迟,以将内部函数的调用间隔1秒 _.each(this.rows, function (row, i) { row.setChars(msg[i] ? msg[i] : ' '); }); 找到答案后,只需在z.每个循环中添加一个自调用函数,并根据循环的迭代次数继续扩展超时 下面是一个工作示例(编辑以删除冗余): 你不需要额外的生活 _.each(this.rows, function (row, i) { setTimeout(fu

如何在每个循环的每次迭代中添加延迟,以将内部函数的调用间隔1秒

  _.each(this.rows, function (row, i) {
      row.setChars(msg[i] ? msg[i] : ' ');
  });

找到答案后,只需在z.每个循环中添加一个自调用函数,并根据循环的迭代次数继续扩展超时

下面是一个工作示例(编辑以删除冗余):


你不需要额外的生活

_.each(this.rows, function (row, i) {
    setTimeout(function () {
        row.setChars(msg[i] ? msg[i] : ' ');
    }, 1000 * i);
});

因为您不是在显式的
for
循环中执行此操作。

您能更显式一点吗?本质上,我希望每行将row.setChars的调用间隔1秒。您的解决方案是冗余的哪部分是冗余的?太棒了!非常感谢,这是一个比我的解决方案更好的答案。如果答案是可以接受的,你应该考虑接受它。我知道这是一个有点晚的党,但这只是救了我的***…如果有人想知道为什么会这样做——当与0.each循环时,几乎所有对象都会立即设置计时器。因此,在间隔标记处(本例中为1秒),所有计时器都将过期。所以这是一个非常有创意的解决方案:)很好的答案,非常聪明的方法你的答案和@zerkms的答案有什么区别?我的答案是第一个,我编辑以消除冗余,以免混淆任何人
_.each(this.rows, function (row, i) {
    setTimeout(function () {
        row.setChars(msg[i] ? msg[i] : ' ');
    }, 1000 * i);
});