时间:2021-05-26
nodejs框架类库很多,“流程控制”本来是件比较简单的事,但是对于nodejs的异步架构的实现方法,对于需要同步的业务逻辑,实现起来比较麻烦。
async的集合控制:
async.map(arr, function(item, callback){},callback(err, results){});async.mapSeriesresults.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异步常用函数总结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
async/await多个函数关联调用async/await使得异步代码看起来像同步代码async函数会隐式地返回一个promise,而promise的reos
随着Node7的发布,越来越多的人开始研究据说是异步编程终级解决方案的async/await。异步编程的最高境界,就是根本不用关心它是不是异步。async函数就
本文介绍的是关于es6中Async函数的相关内容,非常出来供大家参考学习,需要的朋友们下面来看看详细的介绍:async函数async函数,使得异步操作变得更加方
本文介绍了三分钟学会用ES7中的Async/Await进行异步编程,分享给大家,具体如下:Async/Await基本规则async表示这是一个async函数,a
在express中时使用Async/await编写异步代码时,每个async函数都要包裹在try/catch中,代码量多了看着冗余不优雅,express又不像k