最近听到一个词叫"并发",其实在工作中很多这种处理的场景只是没有并发这种概念,今天总结一下 。

假设场景: 一个普通查询页面,需要刚进页面就同时调用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情况下

  可以用一个变量去保存或者记录每个接口成功后给变量添加值。