📅  最后修改于: 2023-12-03 15:07:41.552000             🧑  作者: Mango
在程序员的日常生活中,睡眠是非常重要的。但是,在编写 JavaScript 代码时,如何让程序在睡眠时继续运行呢?本文将介绍如何在 JavaScript 中睡觉。
使用 setTimeout
可以在指定的时间后执行一个函数,并且不会阻塞程序的运行。
console.log('开始睡觉');
setTimeout(function() {
console.log('睡醒了');
}, 2000);
console.log('继续工作');
这段代码会先输出 开始睡觉
,然后等待两秒后输出 睡醒了
,最后输出 继续工作
。
如果需要周期性地进行某个操作,可以使用 setInterval
。这个函数会每隔一定的时间执行一遍指定的函数。
var count = 0;
var timer = setInterval(function() {
console.log('睡觉中...');
count++;
if (count === 5) {
clearInterval(timer);
console.log('起床了');
}
}, 1000);
这段代码会每隔一秒输出一次 睡觉中...
,直到输出了五次以后才输出 起床了
。
ES6 引入了 Promise,可以更方便地进行异步操作。当异步操作完成后,Promise 可以向外部发出通知。
console.log('开始睡觉');
new Promise(function(resolve, reject) {
setTimeout(resolve, 2000);
}).then(function() {
console.log('睡醒了');
});
console.log('继续工作');
这段代码会先输出 开始睡觉
,然后等待两秒后输出 睡醒了
,最后输出 继续工作
。
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,都可以让程序在异步操作完成后继续执行。