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();

如有疑问或更好的解决方式,欢迎各位巨佬留言指正。

posted @   zcookies  阅读(1160)  评论(0编辑  收藏  举报
编辑推荐:
· 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代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示