gpt4 book ai didi

javascript - 循环内 sleep /延迟/超时

转载 作者:行者123 更新时间:2023-11-28 09:24:22 31 4
gpt4 key购买 nike

我的 JavaScript 代码需要延迟,但如果我在代码中创建超时函数,就会遇到问题。但是,如果我取出超时代码,它就可以正常工作。我搜索了这里关于超时/延迟的其他帖子,但我认为我的情况有点不同。

var myArray = new Array('Book One', 'Book Two', 'Book Three', 'Book Four');

x = myArray.length - 1;

(function myLoop(x) {

page = 3;

(function myLoop2(page) {
//setTimeout(function () {

var name = myArray[x];

alert(name + ' Page: ' + page);

if (--page) myLoop2(page);
//}, 1000 )
})(page);

if (x != 0) myLoop(--x);
})(x);

如果我删除代码中的注释,它将给出不同的输出。

最佳答案

不幸的是,JavaScript 中没有 sleep 或等待函数。超时不会暂停程序执行。相反,它会安排该函数在稍后的某个时间点执行,并继续执行,就好像此时什么也没有发生一样。

因此,如果没有超时,代码将作为正常的嵌套循环运行。

超时后,内部循环变为“调度一次,触发时调度下一个”。所以外循环会调度每本书的所有第一页。一秒钟后,第一页被触发,这将安排第二页。再过一秒,第二个页面就会被触发,依此类推。

关于javascript - 循环内 sleep /延迟/超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14598210/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com