VU3 forEach异步获取数据的顺序问题

VU3 forEach异步获取数据的顺序问题
我想把数组cart里的id分别传入getcart里,获取每个id对应的数据
但forEach里的异步无法保证获取数据的顺序
请问应该怎么做才能保证顺序一致呢?
(cart里添加的数据为[1,2,3,4,5],但获取之后展示到网页的顺序有可能就变成了[5,1,3,2,4]之类)

感觉这个问题应该不是很需要。。还是补上可复制的代码吧
onUpdated(() => {

  // buyList.value = [];

cart.value = store.state.cartlist;

cart.value.forEach((e) => {

getCart(e[0]).then((res) => {

buyList.value.push(res);

});

});


回答:

最简单的 直接使用Promise.all来解决。

let promiseQueue = []

cart.value = store.state.cartlist;

cart.value.forEach((e) => {

promiseQueue.push(getCart(e[0]));

});

// 这里的res 就是按顺序执行的

Promise.all(promiseQueue).then(res=>{})

以上是 VU3 forEach异步获取数据的顺序问题 的全部内容, 来源链接: utcz.com/p/935709.html

回到顶部