兑现许多承诺?

时间:2019-06-23 18:12:12

标签: angular7

我对angular还是陌生的,我面临一个问题,我需要打电话给几个promise,并在继续进行之前获得所有结果。

// Let's assume this array is already populated
objects: any[];

// DB calls
insertObject(obj1: any): Promise<any> {
  return this.insertDB('/create.json', obj1);
}

updateObject(obj: any): Promise<any> {
  return this.updateDB('/update.json', obj);
}

// UI invokes this:
save(): void {
  this.insertObject(objects[0])
  .then((result) => {
    console.log(result.data[0].id);
  })
  .catch((reason) => {
    console.debug("[insert] error", reason);
  });

  this.insertObject(objects[1])
  .then((result) => {
    console.log(result.data[0].id);
  })
  .catch((reason) => {
    console.debug("[insert] error", reason);
  });

  this.updateObject(objects[1])
  .then((result) => {
    console.log(result.data[0].status);
  })
  .catch((reason) => {
    console.debug("[update] error", reason);
  });

  //I need to catch these 3 results in order to perform the next action.

}

关于如何实现这一目标的任何想法?

1 个答案:

答案 0 :(得分:0)

  

使用语法Promise.all(iterable),可以执行Promises数组。当所有的诺言都得到解决时,此方法便会解决;如果其中的任何诺言都失败,则此方法会失败。

This can help you

console.log(process.env.PORT) // undefined