`

nodejs 实现方法的同步

阅读更多

一.本人推荐的是类库: async 点击跳转到官方文档.

 

二.实现同步的方法: async.series 该方法可以实现多个函数同步执行.例如:

async.series([
        function(callback){
          函数一
        },
        function(callback) {
          函数二
        }
      ],
      function(err,results){
        所以函数执行完成或发生错误时的回调.
      })

  第一个参数是一个数组代表要执行函数.第二个参数为回调函数.

 

三. 实现循环的同步.async.concat 该方法可以实现.例如:

 async.concat(note_info, function (item, callback) { },function (err, data) {});

 该方法有三个参数,第一个参数可以是数组或对象.第二个参数是个函数,主要对第一个参数进行处理.第三个参数是回调函数.

 

四.结合上面执行的具体例子:

async.series([
        function(callback){
          note.get(null,function(err,data) {
            if (err) {
              return res.json({status: 500, message: '后台错误'})
            }
            note_info = data;
            callback(null,data)
          })
        },
        function(callback) {
          async.concat(note_info,
              function (item, callback) {
                register.get({_id: new ObjectID(item.user)}, function (err, user) {
                  if (err) {
                    return res.json({status: 500, message: '后台错误'})
                  }
                  if (user && user.length > 0) {
                    item.user = user;
                    callback(null, item)
                  }
                });
              },
              function (err, data) {
                callback(null,data)
              });
        }
      ],
      function(err,results){
        res.json({status: 200, data: results[0]})
      })

 

上面就是一个需要首先从note里面取出数据,然后根据note里面的数据去  register里面取数据,最后将数据合并起来的一个例子. 

分享到:
评论

相关推荐

    NodeJS实现同步的方法

    nodeJS的异步实现:nodeJS有一个任务队列,在使用setInterval函数的时候,会每隔特定的时间向该任务队列增加任务,从而实现“多任务”处理。但是,“特定的时间”不代表是具体的时间,也有可能是会大于我们设定的...

    NodeJS如何实现同步的方法示例

    下面这篇文章主要介绍了关于NodeJS实现同步的相关内容,NodeJS被打上了单线程、非阻塞、事件驱动…..等标签。 在单线程的情况下,是无法开启子线程的。经过了很久的研究,发现并没有thread函数!!!但是有时候,...

    Nodejs实现多文件夹文件同步

    主要为大家介绍了Nodejs实现多文件夹文件同步,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    Nodejs 实现磁力链接获取 DHT BT爬虫 磁力链接解析 种子解析 资源搜索

    * 使用 nodejs 实现磁力链接爬虫 磁力链接解析成 torrent种子信息,保存到数据库,利用 Elasticsearch 实现中文检索。koa2 搭建磁力链接搜索引擎 * 后端脚本 磁力链接获取 磁力链接解析 入库 Mongodb 定时同步 ...

    nodejs+socket.IO实现多人移动会议画板demo

    本项目是一个利用nodejs.socket.io实先的多人会议画板功能。实现会议同步,插入图片,插入线条,更换背景色,和移动端兼容等。若有不足之处望批评。谢谢

    nodejs中sleep功能实现暂停几秒的方法

    我在网上了解了一下nodejs中sleep...其实使用setTimeout就可以实现,只是nodejs异步已经很金字塔了,再加一层会更恐怖,所以本文使用nodejs的第三方模块async来实现,async的目的就是让多个异步的程序,按照开发者想要的顺

    MusicRadio:SyncMusic 的nodejs实现

    MusicRadio是一个使用nodejs开发的基于websocket的在线同步播放音乐室,支持多房间(公开/非公开房间) / 多管理员 / 点歌 / 随机播放 /聊天/ 弹幕等功能特性,并提供了基本的管理功能,如:屏蔽用户、屏蔽ip地址、...

    google-auth:NodeJS实现的google-authenticator服务器,API作用主要是生成Key以及验证Key所对应的Code

    同步时间sudo apt install ntpdate #安装ntpdatesudo ntpdate ntp1.aliyun.com #与时间服务器同步时间3. 下载代码git clone https://github.com/alexwishes/google-auth.git4. 安装依赖cd google-authnpm ...

    用nodejs,express,ejs,mongo,extjs实现了简单了网站后台管理系统

    本来准备使用wind模块,是为了实现同步的目的,由于后来改用了fibers模块之后,就没有使用它。这里说明一下 不是fibers要比wind好,而是我暂时不能理解wind,或则是说对wind的研究不够吧。 众所周知nodejs是推崇异步...

    CrawlerVuln:一个NodeJS实现的漏扫动态爬虫

    CrawlerVuln一个NodeJS实现的漏扫动态爬虫环境配置需要搭建一个MongoDB,去docker仓库拉一个即可,然后将在module/Databases.js第二行中修改数据库配置信息。chromium修改版可以用extension/目录下的,也可以去这里...

    thinkphp_auth_for_nodejs:nodejs的thinkphp身份验证

    这个权限经过我的移植发现是可以实现的,如果你有使用请注意两点:此版本可用,需要从数据库取数据,方法自行实现。登录验证没有完成,只做了实时验证。登录验证只是把权限列表写在session而已。最后,如果你使用...

    matlab人脸检测框脸代码-opencv4nodeJs-4.5.2:适用于Node.js的OpencvBuild

    除了同步API外,该软件包还提供了一个异步API,使您可以构建非阻塞和多线程计算机视觉任务。 opencv4nodejs支持OpenCV 3和OpenCV 4。 该项目的最终目标是提供与OpenCV API和OpenCV-contrib模块的nodejs绑定的全面...

    node-todoist:todoist v8同步API的nodejs实现

    该模块实现了所述的Todoist Sync API v8。 用法 const Todoist = require ( 'todoist' ) . v8 const todoist = Todoist ( process . env . TODOIST_API_KEY ) ; ( async ( ) => { // READING DATA: // sync(): ...

    nodejs async异步常用函数总结(推荐)

    nodejs框架类库很多,“流程控制”本来是件比较简单的事,但是对于nodejs的异步架构的实现方法,对于需要同步的业务逻辑,实现起来比较麻烦。 async的集合控制: async.map(arr, function(item, callback){},...

    opencv4nodejs:Nodejs绑定到OpenCV 3和OpenCV 4

    除了同步API外,该软件包还提供了一个异步API,使您可以构建非阻塞和多线程计算机视觉任务。 opencv4nodejs支持OpenCV 3和OpenCV 4。 该项目的最终目标是提供与OpenCV API和OpenCV-contrib模块的nodejs绑定的全面...

    【JavaScript源代码】nodejs中的异步编程知识点详解.docx

    nodejs中的异步编程知识点详解  因为javascript默认情况下是单线程的,这意味着代码不能创建新的线程来并行执行。... 在讨论nodejs的异步编程之前,让我们来讨论一个比较容易混淆的概念,那就是同步,异步,阻

    nodejs中实现阻塞实例

    澄清一点,node.js的单线程仅仅指javascript引擎是单线程的,无论如何我们没有办法在javascript中实现多线程和阻塞(本文用到的方法同样不是通过V8引擎实现同步的);但对于node.js的其他方面不代表不能多线程,例如...

Global site tag (gtag.js) - Google Analytics