当前位置: 首页 > 后端技术 > Node.js

nodejsasynclibrary系列、瀑布、并行

时间:2023-04-03 17:14:37 Node.js

async提供的API包括三部分:(1)流程控制的几种常用流程控制。(2)集合处理异步操作,处理集合中的数据。(3)工具类。GitHub开源地址:https://github。com/caolan/asyncasyncseriescontrolserialunrelatedprocess**method1**async.series([function(callback){//做一些事情...callback(null,'one');},function(callback){//做更多的事情...callback(null,'two');}],//optionalcallbackfunction(err,results){//results现在等于['one','two']});**方法二**async.series({一:function(callback){setTimeout(function(){callback(null,1);},200);},二:function(callback){setTimeout(function(){callback(null,2);},100);}},function(err,results){//结果现在等于:{one:1,two:2}});asyncseriesparallelandnoneAssociatedProcess**方法1**async.parallel([function(callback){setTimeout(function(){callback(null,'one');},200);},function(callback){设置超时(功能(){回调(空,“二”);},100);}],//optionalcallbackfunction(err,results){//结果数组将等于['one','two']即使//第二个函数的超时时间更短。});**方式二**//一个使用对象而不是数组的例子async.parallel({one:function(callback){setTimeout(function(){callback(null,1);},200);},two:function(callback){setTimeout(function(){callback(null,2);},100);}},function(err,results){//结果现在等于:{one:1,two:2}});asyncwaterfall串行与关联**方式一**async.waterfall([function(callback){callback(null,'one','two');},function(arg1,arg2,callback){//arg1nowequals'one'和arg2现在等于'two'callback(null,'three');},function(arg1,callback){//arg1现在等于'three'callback(null,'done');}],function(err,结果){//结果现在等于'done'});**方法二**//或者,使用命名函数:async.waterfall([myFirstFunction,mySecondFunction,myLastFunction,],function(err,result){//现在结果equals'done'});functionmyFirstFunction(callback){callback(null,'one','two');}functionmySecondFunction(arg1,arg2,callback){//arg1现在等于'one',arg2现在等于'two'callback(null,'three');}functionmyLastFunction(arg1,callback){//arg1现在等于'three'callback(null,'done');}