📜  在 js 中睡觉 - Javascript (1)

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

在 JavaScript 中睡觉

在程序员的日常生活中,睡眠是非常重要的。但是,在编写 JavaScript 代码时,如何让程序在睡眠时继续运行呢?本文将介绍如何在 JavaScript 中睡觉。

1. setTimeout

使用 setTimeout 可以在指定的时间后执行一个函数,并且不会阻塞程序的运行。

console.log('开始睡觉');
setTimeout(function() {
  console.log('睡醒了');
}, 2000);
console.log('继续工作');

这段代码会先输出 开始睡觉,然后等待两秒后输出 睡醒了,最后输出 继续工作

2. setInterval

如果需要周期性地进行某个操作,可以使用 setInterval。这个函数会每隔一定的时间执行一遍指定的函数。

var count = 0;
var timer = setInterval(function() {
  console.log('睡觉中...');
  count++;
  if (count === 5) {
    clearInterval(timer);
    console.log('起床了');
  }
}, 1000);

这段代码会每隔一秒输出一次 睡觉中...,直到输出了五次以后才输出 起床了

3. Promise

ES6 引入了 Promise,可以更方便地进行异步操作。当异步操作完成后,Promise 可以向外部发出通知。

console.log('开始睡觉');
new Promise(function(resolve, reject) {
  setTimeout(resolve, 2000);
}).then(function() {
  console.log('睡醒了');
});
console.log('继续工作');

这段代码会先输出 开始睡觉,然后等待两秒后输出 睡醒了,最后输出 继续工作

4. async/await

ES2017 引入了 async/await,让异步操作更加简单。使用 async 声明的函数返回一个 Promise 对象,然后就可以使用 await 让程序在异步操作完成后继续执行。

async function sleep() {
  console.log('开始睡觉');
  await new Promise(function(resolve, reject) {
    setTimeout(resolve, 2000);
  });
  console.log('睡醒了');
}
console.log('开始工作');
sleep();
console.log('继续工作');

这段代码会先输出 开始工作,然后输出 开始睡觉,等待两秒后输出 睡醒了,最后输出 继续工作

总结

JavaScript 的异步操作让程序员可以在睡觉时继续进行编程工作。使用 setTimeout、setInterval、Promise 或 async/await,都可以让程序在异步操作完成后继续执行。