NodeJs使用async让代码按顺序串行执行
描述
由于nodejs中的函数调用都是异步执行的,而笔者在工程开发中函数A需要四五个参数,而这四五个参数值都是通过函数调用获得,因此按顺序写代码时,执行到函数A时,往往函数A需要的参数值因为参数的异步调用关系,所需参数都还是undefined。
解决思路是保证函数A执行之前,函数A所需的四五个参数值都已经获得,可以通过async来实现代码的串行执行。
版本
nodejs: 6.9.5
async: 2.2.0
步骤
1、首先安装async
npm install async --save
2、写async串行化代码
笔者函数A所需的参数a,b,c,d,e都是通过函数调用获得,但是这五个函数调用都是独立的,之间不会相互影响,因此可以选择async中的 parrallel来实现,具体代码如下:
let async = require('async'); async.parallel({ paraA:function(done){ let paraA = invokeA();//参数paraA通过invokeA获得 done(null,paraA); }, paraB:function(done){ let paraB = invokeB(); done(null,paraB); }, paraC:function(done){ let paraC = invokeC(); done(null,paraC); }, paraD:function(done){ let paraD = invokeD(); done(null,paraD); }, paraE:function(done){ let paraE = invokeE(); done(null,paraE); } },function(error, result){ func(result.paraA,result.paraB,result.paraC,result.paraD,result.paraE);//函数func需要参数paraA,paraB...... })
使用async时,result汇总了串行阶段的所有返回值,并可以在串行代码执行完毕后使用。
注意:如果所需串行的代码相互之间形成前后依赖关系,那么可以使用async中的series,具体使用方法为将上例中的parallel改为series。
更多async使用参考:async使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决