将相关数据与承诺结果相结合

时间:2015-09-13 15:06:55

标签: javascript promise

我有一个对象数组,我需要进行异步调用 对于每一个,一旦完成所有呼叫,我想将每个模块打包为包含原始对象细节的对象,并且 来自异步调用的新结果,并将其全部放入数组中。

我在尝试计算如何将原始模块对象与异步相结合时遇到了一些麻烦 结果。

这是我到目前为止 -

const modules = [{name: 'module1', id: 1}, {name: 'module2', id: 2}, ..etc];

let modulesHistory = []; // my final array object
let modulesPromises = []; // store all my promises

modules.forEach((module) => {
  const buildHistory = new BuildHistory(module.id); // my collection

  // I tried to do something like this
  // but it's not really doing it:
  // 
  // modulesHistory.push({
  //   module: module, 
  //   builds: buildHistory 
  // });

  modulesPromises.push(buildHistory.fetch()); // fetch returns a promise

});

$.when.apply($, modulesPromises).done(function(){
  // Afterwards I'd like modulesHistory to look like: 
  // [
  //   {
  //     module: {
  //       name: 'module1',
  //       id: 1
  //     },
  //     data: {
  //       // stuff returned from asyc
  //     }
  //   },
  //   {
  //     module: {
  //       name: 'module2',
  //       id: 2
  //     },
  //     data: {
  //       // stuff returned from asyc
  //     }
  //   }
  // ]

  doStuff(modulesHistory);
});

0 个答案:

没有答案