十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本篇文章给大家分享的是有关nodejs中有哪些async异步函数,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
创新互联公司专注于旅顺口企业网站建设,响应式网站建设,商城开发。旅顺口网站建设公司,为旅顺口等地区提供建站服务。全流程按需设计网站,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务async的集合控制:
async.map(arr, function(item, callback){},callback(err, results){});async.mapSeries
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);多个函数依次执行,之间没有数据交换
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);多个函数并行执行;
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异步函数,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联成都网站设计公司行业资讯频道。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。