首页 > 编程语言 > 详细

promis.all动态数组的构造

时间:2021-02-28 00:00:46      阅读:25      评论:0      收藏:0      [点我收藏+]

promis.all动态数组的构造

最近在工作中遇到一个需求,需要前端向后端发出多个请求,这本来是很容易做到的事情,使用promise.all就可以进行构造。

例如:

Promise.all([promise1, promise2])

看起来似乎可以,但是我的需求在发送时是不知道promise数量的,也就是说promise数组需要用一个变量传进去。

一开始我尝试使用:

let promise_arr = []
promise_arr.push(promise1, promise2)
Promise.all(promise_arr)

结果可想而知,在使用Promise.all之前,promise1和promise2中的请求就已经发出,因此无法捕捉到Promise.all的结果。

查过StackOverflow之后得到了解决方法,使用数组自带的map函数。

运行时使用数组的map函数,动态调用原数组来产生promise数组,这样可以保证promise的执行在all函数这里才开始。

let promise_arr = [‘1‘, ‘2‘]
Promise.all(promise_arr.map((val, index) => {
    /* 构造promise_arr中元素的替换函数, val代表数组迭代的当前元素,index数组元素的当前下标 */
    return axios_fun(val);	//这样可以使用axios_fun函数产生的promise元素来替代promise_arr第index项的值
}))

前端入门级野生程序员,若有错漏,望指正。

promis.all动态数组的构造

原文:https://www.cnblogs.com/shenyingge/p/14457130.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!