📜  反应如何睡 1 秒 - Javascript (1)

📅  最后修改于: 2023-12-03 15:22:53.392000             🧑  作者: Mango

反应如何睡 1 秒 - Javascript

在编写程序时,有时我们需要让程序等待一段时间后再继续执行下一步操作。Javascript 中可以使用 setTimeout 函数来实现。

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 对象实现。使用此方法可以让程序暂停一段时间后再继续执行下一步操作。