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

如有疑問或更好的解決方式,歡迎各位巨佬留言指正。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM