您的位置:首页 > Web前端 > Node.js

nodejs 异步io 解决for循环最佳方案

2016-03-02 14:30 477 查看
nodejs 众所周知单线程,异步io。

模型图如下:



对于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});

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: