nodejs async异步常用函数总结(推荐)


Posted in NodeJs onNovember 17, 2017

nodejs框架类库很多,“流程控制”本来是件比较简单的事,但是对于nodejs的异步架构的实现方法,对于需要同步的业务逻辑,实现起来比较麻烦。

async的集合控制:

async.map(arr, function(item, callback){},callback(err, results){});async.mapSeries

nodejs async异步常用函数总结(推荐)

app.get('/testMap',function(req, res){
 var arr = [0,1,2,3,4,5,6];
 async.mapSeries(arr,function(item, callback){
  (function(){
  callback(null, item+1);
  }());
 },function(err, results){
  console.log(results);//[1,2,3,4,5,6,7];
 });
 });

results.length与arr.length值相等;

对数组arr中的每个item,执行某个异步函数function,得到结果。所有的结果将汇总到最终的callback里;

async的流程控制:

async.series(tasks,callback);多个函数依次执行,之间没有数据交换

nodejs async异步常用函数总结(推荐)

app.get('/testSeries',function(req, res){
 async.series([
 function(callback){
  callback(null,'function1');
 },function(callback){
  callback(null, 'function2')
 },function(callback){
  callback(null, 'function3');
 }],function(err, results){
  console.log(results);//['function1','function2','function3'];
 });
 });
tasks: functionList;
callback: function(err, result){}

串行执行,一个函数数组中的每个函数执行完成之后,才执行下一个函数,callback(err,results);err返回错误信息,results为多个函数的返回的结果集;

如果任何一个函数向它的回调函数中传了一个error,则后面的函数都不会被执行,并且将会立刻会将该error以及已经执行了的函数的结果,传给series中最后那个callback

async.parallel(tasks,callback);多个函数并行执行;

nodejs async异步常用函数总结(推荐)

app.get('/testParallel',function(req, res){
 async.parallel([
 function(callback){
  callback(null,'function1');
 },function(callback){
  callback(null, 'function2')
 },function(callback){
  callback(null, 'function3');
 }],function(err, results){
  console.log(results);//['function1','function2','function3'];
 });
});

tasks: functionList;

callback:function(err, results){}

tasks.length与results.length值相等

并行执行多个函数,每个函数都是立即执行,不需要等待其它函数先执行.传给最终callback数组中的数据按照tasks中声明的顺序,而不是执行完成的顺序;

如果某个函数出错,则立刻将err和已经执行完的函数的结果值传给parallel最终的callback。其它未执行完的函数的值不会传到最终数据,但要占个位置

async.whilst(test,function,callback);可用于异步调用while

app.get('/testWhilst',function(req, res){
 var count = 0;
 async.whilst(function(){
  if(count < 3) return true;
 },function(callback){
  (function(){
  count++;
  callback(null);
  }());
 },function(err){
  console.log(count);//3
 });
 });

总结

以上所述是小编给大家介绍的nodejs async异步常用函数总结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

NodeJs 相关文章推荐
nodejs npm包管理的配置方法及常用命令介绍
Jun 05 NodeJs
Windows 系统下设置Nodejs NPM全局路径
Apr 26 NodeJs
NodeJS整合银联网关支付(DEMO)
Nov 09 NodeJs
Highcharts+NodeJS搭建数据可视化平台示例
Jan 01 NodeJs
nodejs基础应用
Feb 03 NodeJs
Express与NodeJs创建服务器的两种方法
Feb 06 NodeJs
详解NodeJS框架express的路径映射(路由)功能及控制
Mar 24 NodeJs
Express+Nodejs 下的登录拦截实现代码
Jul 01 NodeJs
对mac下nodejs 更新到最新版本的最新方法(推荐)
May 17 NodeJs
nodejs实现套接字服务功能详解
Jun 21 NodeJs
nodejs同步调用获取mysql数据时遇到的大坑
Mar 02 NodeJs
NodeJs 实现简单WebSocket即时通讯的示例代码
Aug 05 NodeJs
详解IWinter 一个路由转控制器的 Nodejs 库
Nov 15 #NodeJs
nodejs判断文件、文件夹是否存在及删除的方法
Nov 10 #NodeJs
nodejs使用express获取get和post传值及session验证的方法
Nov 09 #NodeJs
nodejs操作mongodb的增删改查功能实例
Nov 09 #NodeJs
nodejs中art-template模板语法的引入及冲突解决方案
Nov 07 #NodeJs
Mac 安装 nodejs方法(图文详细步骤)
Oct 30 #NodeJs
浅谈NodeJs之数据库异常处理
Oct 25 #NodeJs
You might like
php读取EXCEL文件 php excelreader读取excel文件
2012/12/06 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
PHP创建自己的Composer包方法
2018/04/09 PHP
JavaScript入门教程(2) JS基础知识
2009/01/31 Javascript
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
javascript操作css属性
2013/12/30 Javascript
Jquery validation remote 验证的缓存问题解决方法
2014/03/25 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
2014/05/05 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
2015/08/24 Javascript
JavaScript的六种继承方式(推荐)
2017/06/26 Javascript
Three.js中矩阵和向量的使用教程
2019/03/19 Javascript
简单了解小程序+node梳理登陆流程
2019/06/24 Javascript
Vue 技巧之控制父类的 slot
2020/02/24 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
用Python进行基础的函数式编程的教程
2015/03/31 Python
python创建临时文件夹的方法
2015/07/06 Python
Python绘制七段数码管实例代码
2017/12/20 Python
浅谈Tensorflow模型的保存与恢复加载
2018/04/26 Python
基于python神经卷积网络的人脸识别
2018/05/24 Python
Css3新特性应用之视觉效果实例
2016/12/12 HTML / CSS
英国票务网站:Ticketmaster英国
2018/08/27 全球购物
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
施工班组长岗位职责
2014/01/05 职场文书
公司周年庆典邀请函
2014/01/12 职场文书
爱国卫生月实施方案
2014/02/21 职场文书
工厂采购员岗位职责
2014/04/08 职场文书
教师党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
2016年优秀教师先进事迹材料
2016/02/26 职场文书
2016年度优秀辅导员事迹材料
2016/02/26 职场文书
劳动合同变更协议书范本
2019/04/18 职场文书
公务员的复习计划书,请收下!
2019/07/15 职场文书
Mysql效率优化定位较低sql的两种方式
2021/05/26 MySQL
详解Java实践之适配器模式
2021/06/18 Java/Android
解析Redis Cluster原理
2021/06/21 Redis
jQuery实现广告显示和隐藏动画
2021/07/04 jQuery