NodeJS如何优雅的实现Sleep休眠

 更新时间:2024年09月05日 08:49:29   作者:HumorChen99  
这篇文章主要介绍了NodeJS如何优雅的实现Sleep休眠问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

NodeJS实现Sleep休眠

先打印1,然后1.5秒后打印2

/*
休眠函数sleep
调用 await sleep(1500)
 */
function sleep(ms) {
    return new Promise(resolve=>setTimeout(resolve, ms))
}
async function main() {
    console.log(1)
    await sleep(1500)
    console.log(2)
}
main()

NodeJS实现一个真正的Sleep,Sleep期间不影响其它线程执行

Node.js 是基于 Chrome V8 引擎的 JavaScript 运行环境,它采用了单线程、事件驱动和非阻塞I/O模型。

由于JavaScript是单线程的,传统意义上的线程睡眠(如Java中的Thread.sleep)在Node.js中并不适用,因为那会阻塞整个事件循环,从而影响其他所有任务的执行。

然而,如果你希望实现一个“sleep”效果,同时不阻碍其他异步操作的进行,你可以使用Promise结合setTimeout来模拟异步等待的效果。

这样,你可以在等待期间让出事件循环给其他任务处理,模拟并发执行的效果。

以下是一个简单的示例:

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

async function yourAsyncFunction() {
    console.log('开始执行');
    await sleep(2000); // 模拟“sleep”2秒
    console.log('2秒后继续执行');
}

yourAsyncFunction();

console.log('这句代码会立即打印,不会被sleep阻塞');

在这个例子中,sleep函数返回一个Promise,这个Promise在指定的毫秒数后解析,从而允许使用await关键字在异步函数中“等待”,而不会阻塞其他代码的执行。

console.log('这句代码会立即打印,不会被sleep阻塞')会立即执行,不受sleep影响,体现了非阻塞特性。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • nodejs动态创建二维码的方法

    nodejs动态创建二维码的方法

    这篇文章主要为大家详细介绍了nodejs动态创建二维码的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • 详解使用 Node.js 开发简单的脚手架工具

    详解使用 Node.js 开发简单的脚手架工具

    这篇文章主要介绍了详解使用 Node.js 开发简单的脚手架工具,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Node.js实现批量下载图片简单操作示例

    Node.js实现批量下载图片简单操作示例

    这篇文章主要介绍了Node.js实现批量下载图片简单操作,结合实例形式分析了node.js批量下载图片的具体步骤与相关实现技巧,需要的朋友可以参考下
    2020-01-01
  • Node.js Webpack常见的模式详解

    Node.js Webpack常见的模式详解

    这篇文章主要介绍了Node.js Webpack常见的模式,Webpack的另一个核心是Plugin ,Plugin是可以用于执行更加广泛的任务如打包优化资源管理 环境变量注入等,需要的朋友可以参考下
    2022-10-10
  • 一文教你如何使用Node进程管理工具-pm2

    一文教你如何使用Node进程管理工具-pm2

    这篇文章详细介绍了如何使用node进程管理工具pm2,文中代码示例讲解的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以借鉴一下
    2023-04-04
  • Node.js 应用探索文件解压缩示例详解

    Node.js 应用探索文件解压缩示例详解

    这篇文章主要为大家介绍了Node.js 应用探索文件解压缩示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • npm安装sharp出现的问题详解(安装失败的问题及解决)

    npm安装sharp出现的问题详解(安装失败的问题及解决)

    这篇文章主要给大家介绍了关于npm安装sharp出现的问题(安装失败的问题及解决)的相关资料,sharp包是基于node.js的高性能图片处理器,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • node.js利用socket.io实现多人在线匹配联机五子棋

    node.js利用socket.io实现多人在线匹配联机五子棋

    这篇文章主要介绍了node.js利用socket.io实现多人在线匹配联机五子棋的操作方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-05-05
  • 玩转Koa之核心原理分析

    玩转Koa之核心原理分析

    这篇文章主要介绍了玩转Koa之核心原理分析,本文从封装创建应用程序函数、扩展res和req、中间件实现原理、异常处理的等这几个方面来介绍,感兴趣的可以了解一下
    2018-12-12
  • express框架下使用session的方法

    express框架下使用session的方法

    这篇文章主要介绍了express框架下使用session的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07

最新评论