js 接口並發問題


最近聽到一個詞叫"並發",其實在工作中很多這種處理的場景只是沒有並發這種概念,今天總結一下 。

假設場景: 一個普通查詢頁面,需要剛進頁面就同時調用4個接口,只有全部接口都調用完成才能讓用戶操作這時候怎么辦?

首先 es6 可以使用 Promise.all()

var a = new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve("a")
},1000)
})

var b = new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve("b")
},5000)
})
var c = new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve("c")
},1000)
})

Promise.all([a,b,c]).then((res)=>{
console.log(res);
})
//Promise.all會在全部都返回成功時候返回。

//注意! Promise.all 必須保證數全是resolve()不然會掛, 你也可以使用Promise.race()

不用es6情況下

  可以用一個變量去保存或者記錄每個接口成功后給變量添加值。


免責聲明!

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



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