📅  最后修改于: 2023-12-03 15:22:53.392000             🧑  作者: Mango
在编写程序时,有时我们需要让程序等待一段时间后再继续执行下一步操作。Javascript 中可以使用 setTimeout 函数来实现。
setTimeout 函数用于在指定的时间间隔后执行一段代码。它的基本语法如下:
setTimeout(function, milliseconds);
其中,function 是一个要执行的函数,可以是匿名函数或已命名的函数。milliseconds 是要等待的时间,以毫秒为单位。注意,这个时间并不是精确的等待时间,因为 Javascript 是单线程执行的,可能存在一些延迟。
下面是一个例子:
console.log('开始等待');
setTimeout(function(){
console.log('等待结束');
}, 1000);
console.log('继续执行');
输出结果为:
开始等待
继续执行
等待结束
可以看到,当程序执行到 setTimeout 函数时,会将这个函数放置在任务队列中,然后继续执行后面的代码。待到指定时间到达后,事件循环会将这个函数从任务队列中取出来执行。
有时候我们希望程序能够暂停一段时间后再继续执行,可以通过封装 setTimeout 函数实现。下面是一个实现睡眠函数的例子:
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function run() {
console.log('开始等待');
await sleep(1000);
console.log('等待结束');
console.log('继续执行');
}
run();
这个例子中,我们首先定义了一个 sleep 函数,它返回一个 Promise 对象。在函数中使用 setTimeout 函数,通过 resolve 函数将 Promise 标记为已完成。
然后我们定义了一个 async 函数 run,其中使用 await 关键字调用了 sleep 函数。由于 sleep 函数返回的是一个 Promise 对象,await 关键字会等待这个对象被标记为已完成后再继续执行下一步操作。所以,在运行到 await sleep(1000) 这一行时,程序会暂停 1 秒钟,在等待结束后再输出结果。
输出结果为:
开始等待
等待结束
继续执行
可以看到,程序会暂停 1 秒钟后再继续执行后面的代码。这样就实现了一个简单的睡眠函数。
本文介绍了在 Javascript 中实现睡眠函数的方法,主要通过封装 setTimeout 函数和 Promise 对象实现。使用此方法可以让程序暂停一段时间后再继续执行下一步操作。