所以我们都知道 setTimeout 在执行某些操作之前会等待一定的时间。我的问题是,它是否先等待上面的代码完成执行,然后再等待一秒钟执行其他操作,或者只是等待一秒钟,无论上面的代码是否已完成执行,它都会执行其余的代码无论如何,代码?
if (1 == 1) {
//huge chunk of code
} //end of if (1 == 1)
var theTime = 1000;
var timeout = setTimeout("location.reload(true);", theTime);
function resetTimeout() {
clearTimeout(timeout);
timeout = setTimeout("location.reload(true);", theTime);
} //end of function resetTimeout()
我的目标是让代码的第一部分完成执行,然后在代码的第一部分完成执行后刷新页面。有没有办法做到这一点?
在您的情况下,页面将在 1 秒后重新加载setTimeout
被称为。所以它是“巨大的代码块”时间加上 1 秒。
要在代码的第一部分完成后立即刷新页面,只需调用location.reload
没有setTimeout
:
if (1) {
//huge chunk of code
}
location.reload(true);
编辑:此方法不等待异步代码完成。例如下面的程序在弹出警告框之前就被重新加载中断了。
if (1) {
setTimeout(() => alert('Test'), 1000);
}
location.reload(true);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)