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实现多人同时在线移动鼠标的小游戏分享
Dec 06 NodeJs
轻松创建nodejs服务器(8):非阻塞是如何实现的
Dec 18 NodeJs
Nodejs实现批量下载妹纸图
May 28 NodeJs
Windows 系统下设置Nodejs NPM全局路径
Apr 26 NodeJs
Nodejs中 npm常用命令详解
Jul 04 NodeJs
详解nodejs 文本操作模块-fs模块(五)
Dec 23 NodeJs
nodeJs爬虫的技术点总结
May 13 NodeJs
nodejs express配置自签名https服务器的方法
May 22 NodeJs
nodejs用gulp管理前端文件方法
Jun 24 NodeJs
Nodejs实现多文件夹文件同步
Oct 17 NodeJs
nodejs log4js 使用详解
May 31 NodeJs
nodejs如何在package.json中设置多条启动命令
Mar 16 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 清除网页病毒的方法
2008/12/05 PHP
PHP CURL 多线程操作代码实例
2015/05/13 PHP
Yii2数据库操作常用方法小结
2017/05/04 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
2020/03/03 PHP
jQuery学习3:操作元素属性和特性
2010/02/07 Javascript
超级简单的jquery操作表格方法
2014/12/15 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
浅谈Javascript数组的使用
2015/07/29 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形网络(1)
2015/11/30 Javascript
基于jQuery实现美观且实用的倒计时实例代码
2015/12/30 Javascript
NodeJs的优势和适合开发的程序
2016/08/14 NodeJs
Vue.js render方法使用详解
2017/04/05 Javascript
深入理解JS的事件绑定、事件流模型
2018/05/13 Javascript
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
在vue-cli的组件模板里使用font-awesome的两种方法
2018/09/28 Javascript
angular6的table组件开发的实现示例
2018/12/26 Javascript
JS+CSS实现随机点名(实例代码)
2019/11/04 Javascript
在Vue中使用antv的示例代码
2020/06/29 Javascript
Python中为feedparser设置超时时间避免堵塞
2014/09/28 Python
python图像处理之镜像实现方法
2015/05/30 Python
基于Python中单例模式的几种实现方式及优化详解
2018/01/09 Python
PyQt实现界面翻转切换效果
2018/04/20 Python
解决python "No module named pip" 的问题
2018/10/13 Python
Django models.py应用实现过程详解
2019/07/29 Python
Python 脚本拉取 Docker 镜像问题
2019/11/10 Python
Python hashlib常见摘要算法详解
2020/01/13 Python
关于Python字符编码与二进制不得不说的一些事
2020/10/04 Python
Jogun Shop中文官网:韩国知名时尚男装网站
2016/10/12 全球购物
英文推荐信格式范文
2014/05/09 职场文书
单方投资意向书
2015/05/11 职场文书
导盲犬小Q观后感
2015/06/11 职场文书
2015重阳节敬老活动总结
2015/07/29 职场文书
爱护环境建议书
2015/09/14 职场文书
《我的长生果》教学反思
2016/02/20 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript