1.问题:同时发送请求p1,p2,要求两个同时有返回结果时再进行处理。
2.实现:(借助于Promise.all)
//1.两个请求写成promise的形式
let p1= new Promise((resolve,reject)=>{
setTimeout(()=>{
let data= '1';
resolve(data);
},2000)
})
let p2= new Promise((resolve,reject)=>{
setTimeout(()=>{
let data= '2';
resolve(data);
},1000)
})
Promise.all([p1,p2]).then(res=>{
console.log(res)//["1","2"]
});
3.总结:
Promise.all最终获取的结果res的结果是按照all里面的写入顺序来定的。结果是一个数组,数组的每一项是每一个请求对应的resolve结果。