Promise.all对带参数的promises数组

Min*_*Vox 8 javascript object promise

Promise.all当参数传递给每个promise时,如何添加一个promises数组?

例如;

var config = {
  name: [
    function(val) {
      return new Promise(function(resolve, reject) {
        resolve('This is ok')
      })
    },
    function(val) {
      return new Promise(function(resolve, reject) {
        resolve('This is ok')
      })
    }
  ],
  gender: [
    function(val) {
      return new Promise(function(resolve, reject) {
        resolve('This is ok')
      })
    },
    function(val) {
      return new Promise(function(resolve, reject) {
        reject('This is NOT ok')
      })
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我基本上想做Promise.all(config[name], ...).这实际上将在一个循环中进行,这样我就可以迭代一个表单对象,传递每个键以获得一个关联的promises数组并将值传递给每个promise.

编辑 小提琴实现了接受的答案,为好奇.

Lyu*_*mir 8

使用map调用函数并返回一组promise.

Promise.all(config[name].map(callback => callback(val))
   .then(values => { 
       // executed when all promises resolved, 
       // values is the array of values resolved by the promises
   })
   .catch(err => {  
     // catch if single promise fails to resolve
   });
Run Code Online (Sandbox Code Playgroud)

你可以在这里阅读更多关于Promise.all的信息.