关于Promise问个问题
发布于 8 年前 作者 oyosc 3642 次浏览 来自 问答

大家面对forEach除了用Promise.all外,还有别的什么办法吗?比如我有一个数组,我要把异步得到的数据插入到数组里的每一个元素去,除了Promise.all之外,还有别的其他办法不?可以给个思路啥的

4 回复

这几个还是有点差别的哦

@magicdawn 是想请教一下,有一个数组,我要把异步得到的数据插入到数组里的每一个元素去,有什么办法呢?个人目前是通过for循环,把数据插入A数组里的每一个元素的操作赋值给一个新的数组B,然后再通过Promise.all(B)从而得到异步插入完成后的新的数组值,想问下还有别的思路不?

有一个数组,我要把异步得到的数据插入到数组里的每一个元素去,有什么办法呢?个人目前是通过for循环,把数据插入A数组里的每一个元素的操作赋值给一个新的数组B,然后再通过Promise.all(B)

forEach

async function  fn(){
  for(let i = 0, len = A.length; i < len; i++){
    B[i] = await getData(A[i])
  }
  return B
}

Promise.all

Promise.all(A.map(getData))

promise.map

var pmap = require('promise.map');

// 5 为并发
pmap(A, getData, 5).then(function(B){
  // B
}, function(err){
  // blabla
})

@magicdawn 恩,谢谢,我研究下

回到顶部