Promise对于异步的处理十分的好用,但是对于一个需要被循环的Promise,我们就需要采用Promose.all的形式才行,如果在.then()中使用push的形式向数组中添加Promise产生的数据,异步会使得数组中的数据缺少或是一个都没有,此时采用Promise.all的形式把所有的Promise一次解决是一个十分不错的方法(这个真好用,我一直不会)
let promArr = []
let prom = new Promise((resolve, reject) => {
// 异步处理的数据,例:
axios.post().then(ret=>{
resolve(ret);
})
});
promArr.push(prom)
Promise.all(promArr).then(ret=>{
// 此时的ret是一个数组,包含的是所有添加到PromArr的Promise对象处理后得到的数据,需要注意的是这一步还是异步的,所以建议之后对于数据的处理需要在这个.then()中进行
});