javascript知识点-等待多个异步任务结果
记录知识点:
最近遇到一个问题,已经解决。
问题大致如:
1.一个H5页面展示,需要等待多个接口都执行后,才能将其显示。
2.nodejs 拉取一个服务器中多个文件,并上传到另一个服务器中。
最普通的方式:
第一个问题:先触发一个接口,然后在其回调函数中执行下一个接口,依次类推,当所有接口执行完后,展示页面。
第二个问题:先一条条的拉取文件,然后在一条条的上传到服务器。
问题:javascript语言的一特点:单线程。那么有某有办法让其同时执行,易维护呢?
博主这么解决的:
//举例一下,第二个问题解决方式
//下载文件方法
async downLoadFile(taskid){
const resp = await http.... //拉取文件
return await this.uploadFile(resp)
}
//上传文件方法
async uploadFile(result){
return await ... //上传到服务器
}
//开始
async start(){
//定义一个任务列表,n条文件需要拉取并上传。
const task = [1,2,3,...,n];
const asynctask = [];//需要处理的任务
const result = []; //处理结果
task.forEach((item)=>{
asynctask.push(this.downLoadFile(item))
})
await Promise.all(asynctask).then((values)=>{
values.forEach((item)=>{
result.push(item);
})
})
return result;
}
//启动
await this.start();
如有疑问或更好的解决方式,欢迎各位巨佬留言指正。
标签:
javascript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南