NodeJS中实现一个真正的Sleep,Sleep期间不影响其它线程执行
在Node.js中,实现一个真正的sleep函数,即在指定的时间内暂停代码执行,但不影响其他线程执行,可以使用Promise结合setTimeout
来实现。这里的"真正的sleep"意味着当前线程会暂停执行,但不会阻塞事件循环,从而不影响其他线程的执行。
以下是一个简单的实现:
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
// 使用方法
async function demo() {
console.log('Before sleep');
await sleep(2000); // 暂停2秒
console.log('After sleep');
}
demo();
在上面的代码中,sleep
函数返回一个Promise,在指定的时间ms
后调用resolve
,这样await sleep(2000)
会暂停执行2秒钟,但不会阻塞事件循环。这样其他线程可以正常执行。
评论已关闭