node.js之async的使用(series,whilst)
来源:互联网 发布:红帽群排名优化软件 编辑:程序博客网 时间:2024/06/08 06:43
series函数 串行执行
async.series({
one: function(callback){callback(null, 1);
},
two: function(callback){
callback(null, 2);
}
},function(err, results) {
console.log(results);
});
如,数据库插入前要找出一个最大ID,,
function (cb1) {
var sql = "SELECT MAX(PRODUCT_ID+1) AS id FROM product;";
Mysql.query(sql, function (err, data) {
new_productid = data[0].id;
console.log("新的productid是: "+new_productid);
cb1(err,data[0]);
});
},
//产品信息插入到 t10_product
function (cb2) {
var sql ="INSERT INTO `product` VALUES ('"+new_productid+"'巴拉巴拉")";
Mysql.query(sql, function (err, data) {
cb2(err,0);
});
},
最后所有的results和err 会汇总到最后的辣个function,results[0]指的是cb1过来的辣个
whilst官方给的栗子
var count = 0;
async.whilst(
function() { return count < 5; },
function(callback) {
count++;
setTimeout(function() {
callback(null, count);
}, 1000);
},
function (err, n) {
// 5 seconds have passed, n = 5
}
);
这次实际开发中需要循环数组,遍历数组里面元素将其插入,,异步会坏了循环插入,其实可以把callback往外面扔,但是这样没法获取mysql.query中的err信息了。
var i = 0; async.whilst(
function() { return i < data.length; },
function(callback) {
if(){
var sql="";
Mysql.query(sql,function (err,data) {
if(err)
callback(err,0);
else
callback(null,0);
});
}
else{
var sql="";
Mysql.query(sql,function (err,data) {
if(err)
callback(err,0);
else
callback(null,0);
});
}
i++;
},
function (err, data) {
cb5(err,data);
}
);
- node.js之async的使用(series,whilst)
- async whilst使用注意
- Node.js中async的简单使用
- node.js 关于 async的使用
- Node.js 使用async模块
- 使用 async Node.js 简化Javascript代码
- node.js使用async完成同步调用
- 在node.js 中使用async await
- Node.js Async Tutorial
- node.js async
- node.js 之async.js 里waterfall模块样例
- NODE.JS async异步调用之串行化调用
- node.js async实践分享
- Node.js异步管理工具Async
- node.js async详细教程
- node.js 7 async / await
- node.js对mongodb的连接&增删改查(附async同步流程控制)
- Node.js 101(2): Promise and async
- postgresql在json类型上建索引进行测试
- spark原理学习总结
- Redis 讲解系列之 Redis的五大数据类型
- 设计模式【外观模式Facade Pattern】
- 20171010离线赛总结
- node.js之async的使用(series,whilst)
- 2.第一个QT程序
- c++内存泄露(二):使用性能监视器进行内存泄露的确认
- java.io.Serializab接口
- <?Php ?>标签外的字符会输出
- android开发多国语言对照表
- 用cocoapods导入的三方库方法无法识别问题
- DELPHI高性能大容量SOCKET并发(四):粘包、分包、解包
- python_csv模块学习