+
80
-

nodejs中如何实现sleep函数?

nodejs中如何实现sleep函数?


网友回复

+
0
-

在Node.js中,可以使用setTimeout()函数来实现sleep效果。

setTimeout()函数的参数是:

1. 要执行的函数

2. 延迟的毫秒数

所以实现sleep的代码很简单:

function sleep(ms) {
	return new Promise(resolve => setTimeout(resolve, ms));
}

async function demo() {
console.log('Taking a break...');
await sleep(2000);
console.log('Two seconds later');
}

demo();

这个sleep函数返回一个Promise,resolve在setTimeout调用后触发。 所以我们可以使用await sleep(2000)暂停2秒。

demo函数是一个async function,所以我们可以使用await来等待sleep函数完成。

输出会是:

Taking a break...

Two seconds later

两个log语句之间有2秒的间隔。

除了Promise之外,你也可以使用回调来实现sleep:

function sleep(ms, callback) {
setTimeout(callback, ms);
}

sleep(2000, () => {
console.log('Two seconds later');
});

sleep函数接受一个回调函数作为第二个参数,并在设定的时间后执行该回调函数。

所以这是在Node.js中实现sleep/暂停效果的两种方式。我个人更喜欢Promise方式,因为它看起来更清晰,并且可以与async/await一起使用。
我知道答案,我要回答