最近聽到一個詞叫"並發",其實在工作中很多這種處理的場景只是沒有並發這種概念,今天總結一下 。
假設場景: 一個普通查詢頁面,需要剛進頁面就同時調用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情況下
可以用一個變量去保存或者記錄每個接口成功后給變量添加值。