nodejs 异步io 解决for循环最佳方案
2016-03-02 14:30
477 查看
nodejs 众所周知单线程,异步io。
模型图如下:
![](http://img.blog.csdn.net/20160302143211286?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
对于for循环来说写起来非常麻烦,曾尝试过闭包,es6,asnyc。
最终选择了使用 eventproxy,具体是什么东西,大家可以百度。用起来很方便,下面上一简单个人亲测代码示例:
var eventproxy = require('eventproxy');
var ep = new eventproxy();
// list 结果集合
ep.after('get_attendance_teacher', result.length, function (list) {
res.json(list);
});
//for循环 io
for (var i = 0; i < result.length; i++) {
var queryAttendance ={};
queryAttendance = {'userId':result[i]._id,"time" : {$gt:startDate, $lt:endDate}};
Attendance.find(queryAttendance, function(err, resultAttendance) {
if (err) {
console.log("db get attendance err::", err);
return;
}
ep.emit('get_attendance_teacher', resultAttendance);
}).sort({"name":1,'time':timeSort});
}
}
模型图如下:
对于for循环来说写起来非常麻烦,曾尝试过闭包,es6,asnyc。
最终选择了使用 eventproxy,具体是什么东西,大家可以百度。用起来很方便,下面上一简单个人亲测代码示例:
var eventproxy = require('eventproxy');
var ep = new eventproxy();
// list 结果集合
ep.after('get_attendance_teacher', result.length, function (list) {
res.json(list);
});
//for循环 io
for (var i = 0; i < result.length; i++) {
var queryAttendance ={};
queryAttendance = {'userId':result[i]._id,"time" : {$gt:startDate, $lt:endDate}};
Attendance.find(queryAttendance, function(err, resultAttendance) {
if (err) {
console.log("db get attendance err::", err);
return;
}
ep.emit('get_attendance_teacher', resultAttendance);
}).sort({"name":1,'time':timeSort});
}
}
相关文章推荐
- 7天学会NodeJS
- nw.js node-webkit系列(13)Native UI API 其它
- 可以彻底从你的mac上卸载掉node.js
- 在Windows上安装Node.js模块的方法
- Leet Code OJ 237. Delete Node in a Linked List [Difficulty: Easy]
- HDFS中的NameNode 和 DataNode
- forever让nodejs应用后台执行
- nodejs-helloword案例
- nodejs安装
- node.js-概念
- Leetcode Swap Nodes in Pairs
- node和ionic组合下载真难寻找
- nodejs express
- LinkedList---Delete Node in the Middle of Singly Linked List
- Win7环境下Sublime Text 3下安装NodeJS插件
- nodejs String
- nodejsPath
- ubuntu如何安装nodejs最新版 本
- nodejs 自动重启服务 supervisor
- 通过inode删除指定文件