nodejs 异步io 解决for循环最佳方案
来源:互联网 发布:空中救援队 知乎 编辑:程序博客网 时间:2024/05/19 00:41
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});
}
}
双层for循环 简单demo
var arr = [{name:'Jack'}, {name:'Mike'}];
async.map(arr, function(item1, callback1) {
var arr2 = [{name:'111'}, {name:'222'}];
async.map(arr2, function(item2, callback2) {
callback2(null, item1.name+item2.name+'!!!');
}, function(err,abc) {
console.log(111111111)
console.log(abc)
// jack111 jack222
// 11111111
// mike111 mike222
callback1(null, abc);
});
}, function(err,resultAll) {
console.log(2222222)
console.log(resultAll)
// jack111 jack222 mike111 mike222
});
- nodejs 异步io 解决for循环最佳方案
- nodejs -- for循环里面套异步解决 -- 类似并发
- nodejs中解决异步嵌套循环,循环嵌套异步
- nodejs中for循环和异步调用的那些坑
- nodejs中循环中套异步+解决async模块
- NodeJS 异步 async / await 方案
- nodejs异步IO的实现
- js for循环异步
- js for循环异步
- 深入剖析Nodejs的异步IO
- 深入剖析Nodejs的异步IO
- nodejs异步I/O和事件循环
- for循环中的异步问题
- node.js 事件循环 异步IO 和 非IO异步
- 异步io解决c10k问题
- 解决nodejs异步数据延迟 解决方案
- 单线程、事件循环和异步IO
- (for+if) 循环最佳实践推导
- 安装cnpm加快npm install安装速度
- eclipse安装cdt插件
- getString(int resId, Object... formatArgs)的用法
- 转盘
- 编写优质嵌入式C程序
- nodejs 异步io 解决for循环最佳方案
- android dpi dip px
- Unity DrawCall优化
- Linux学习笔记之软件安装管理
- [Android] Android开发优化之——从代码角度进行优化
- iOS-此证书的签发者无效
- android 如何计算PopupWindow宽和高
- session机制详解
- Elasticsearch与Solr搜索引擎区别