如何创建javascript延迟函数

use*_*460 22 javascript sleep function delay wait

我有一个javascript文件,在几个地方我想添加一个小延迟,所以脚本将达到这一点,等待3秒,然后继续其余的代码.我想到这样做的最好方法是创建一个函数,我可以在脚本的任何地方调用它.

function startDelay(lengthOfDelay)
{
//code to make it delay for lengthOfDelay amount of time
}
Run Code Online (Sandbox Code Playgroud)

但是,我找不到任何方法来实现代码以使其等待.我看了一下setTimeout,但是你需要将函数硬编码到它中,这对我没什么好处.

有什么方法可以让脚本暂停几秒钟吗?在代码暂停时,我对UI冻结没有任何问题.

如果没有,有没有办法可以使用PHP sleep()来实现这一目标?(我知道PHP是服务器端,Javascript是客户端,但也许有一种我没有听说过的方式.)

Kas*_*sem 49

您不需要使用匿名函数setTimeout.你可以这样做:

setTimeout(doSomething, 3000);

function doSomething() {
   //do whatever you want here
}
Run Code Online (Sandbox Code Playgroud)


Dan*_*dux 5

是啊。欢迎来到异步执行。

基本上,暂停脚本会导致浏览器和页面无响应 3 秒。这对于网络应用程序来说是可怕的,因此不受支持。

相反,你必须“基于事件”思考。使用 setTimeout 在一定时间后调用函数,该函数将在这段时间内继续运行页面上的 JavaScript。