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情况下
可以用一个变量去保存或者记录每个接口成功后给变量添加值。