是否有内置的方法来确定何时所有可观测量都已被解决?

时间:2016-04-26 14:45:21

标签: angular

我有一个包含少量外部API调用的组件。我订阅了所有这些API调用,然后在调用成功后填充下拉列表。我的问题是当我加载已经创建的实体时。由于表单正在等待履行承诺,因此可能无法填充某些下拉列表。

我意识到我可以在我的承诺的成功块中添加一个变量或者其他东西,然后只有在所有变量都为真的情况下才将填充的实体填充到UI上。

Angular 2中是否已经内置了这样的内容?我似乎无法在网上找到这个特殊问题的任何例子。

1 个答案:

答案 0 :(得分:1)

您可以利用observables的forJoin运算符。它允许您在调用全局回调之前等待所有可观察对象执行其请求。

其中接收的数据对应于所有数据的数组。

以下是一个示例:

Observable.forkJoin([
  this.service.getEntityData(),
  this.service.getDropdown1Values(),
  this.service.getDropdown2Values(),
]).subscribe((data) => {
  this.entityData = data[0];
  this.dropdown1Values = data[1];
  this.dropdown2Values = data[2];
});