nodejs 实现方法的同步
程序员文章站
2022-04-13 21:30:16
...
一.本人推荐的是类库: 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里面取数据,最后将数据合并起来的一个例子.