gpt4 book ai didi

javascript - 为什么javascript中setTimeout没有执行

转载 作者:行者123 更新时间:2023-11-28 11:41:15 27 4
gpt4 key购买 nike

我有一个在 javascript 中休眠的函数,如下所示:

var is_sleep = true;
function sleep(time){
if (is_sleep){
is_sleep = false;
setTimeout("sleep(time)", time);
}else{
is_sleep = true;
}
}
sleep(3000);

但是,它会运行 is_sleep=true 的语句,不会运行 is_sleep=false 的语句,并且不再休眠。

谁能告诉一下这是什么原因吗?预先感谢您。

最佳答案

很可能正在调用 setTimeout,但传递给它的字符串失败,因为作用域将不再包含您正在引用的 time。尝试用以下内容替换该行:

setTimeout(function() { sleep(time); }, time);

...它定义了一个闭包,它使用正确的范围。您也可以尝试这个:

setTimeout(sleep, time, time);

...它将把time作为参数传递给sleep

关于javascript - 为什么javascript中setTimeout没有执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5113072/

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