`

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让异步变成同步的方法

    以下我们详细讲解如何通过这些方法实现将异步变成同步。 首先,在JavaScript中,尤其是在Node.js这种以事件驱动、非阻塞I/O模型为特点的环境中,异步操作是核心特性之一。异步操作可以避免程序在等待某些长时间操作...

    NodeJS实现同步的方法

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

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

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

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

    Nodejs 实现磁力链接获取 DHT BT爬虫 磁力链接解析 种子解析 资源搜索 此项目仅用学习交流技术使用 不做商业用途。 使用 nodejs 实现磁力链接爬虫 磁力链接解析成 torrent种子信息,保存到数据库,利用 Elastic...

    nodejs实现读取本地文件生成目录树

    fs模块是Node.js的核心模块,提供了异步和同步的文件系统操作方法,如读取、写入、创建、删除文件和目录等。要读取本地目录,我们可以使用`fs.readdir()`方法,它会返回指定目录中的所有文件和子目录的名称。 下面...

    nodejs实现遍历文件夹并统计文件大小

    实现遍历文件夹功能的代码中,使用了`fs.readdirSync`方法,该方法同步读取目录内容,并返回一个文件名的数组。通过递归调用`readFile`函数,程序能够深入到每一个子目录中继续遍历,对于每一个文件,程序会使用`fs....

    vue和nodejs实现自定义表单拖拽系统.zip

    在本项目"vue和nodejs实现自定义表单拖拽系统.zip"中,开发者利用了前端框架Vue.js和后端技术Node.js构建了一个基于Web的动态表单设计平台。这个系统允许用户通过拖拽的方式自定义创建表单,极大地提高了工作效率,...

    nodejs实现websocket实例

    WebSocket是Web应用中实现双向通信的关键技术,它允许服务器与客户端之间建立长连接,进行实时数据交换。在本文中,我们将深入探讨如何使用Node.js来实现WebSocket实例。 首先,我们需要安装`ws`库,它是Node.js中...

    Nodejs实现多文件夹文件同步

    本文实例为大家分享了Nodejs实现多文件夹文件同步的具体代码,供大家参考,具体内容如下 package.json { "name": "asyncFile", "version": "0.0.1", "dependencies":{ "fs-sync":"", "later":"" } } ...

    nodejs异步IO的实现

    Promise可以链式调用,避免了回调地狱,而async/await则进一步提升了代码可读性,使得异步代码看起来更像同步代码。 五、Node.js的I/O模块 Node.js内建了许多用于处理I/O操作的模块,如`fs`(文件系统)、`net`...

    nodejs实现坦克大战小游戏

    同时,为了保证游戏公平性,服务器需要对所有玩家的操作进行同步,确保同一时间点所有坦克的状态一致。 最后,游戏的测试和优化也是必不可少的步骤。性能测试确保服务器能处理大量并发请求,优化代码提高运行效率,...

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

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

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

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

    angularjs+nodejs例子

    而Node.js则是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行开发,实现了全栈JavaScript开发。 在"angularjs+nodejs"的例子中,我们可以探讨以下几个关键知识点: 1. **...

    21课 NodeJS项目-第4天-{滚动歌词、添加音乐、部署}.rar

    滚动歌词是音乐播放器中的常见功能,它允许用户在歌曲播放时同步阅读歌词。实现这个功能,我们需要以下几个步骤: 1. 数据获取:首先,我们需要获取歌词文本。这通常可以通过爬虫技术从音乐平台抓取,或者直接使用...

    基于Vue+Nodejs+的茶叶售卖平台设计与实现

    Vue Router用于管理页面路由,Vuex则帮助管理全局状态,确保不同组件间的数据同步。 2. **Node.js**:Node.js是基于Chrome V8引擎的JavaScript运行环境,常用于构建后端服务器。本项目中,Node.js结合Express框架...

Global site tag (gtag.js) - Google Analytics