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情况下

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

posted @ 2019-05-08 17:58  zou1234  阅读(1664)  评论(0编辑  收藏  举报