我有一个包含少量外部API调用的组件。我订阅了所有这些API调用,然后在调用成功后填充下拉列表。我的问题是当我加载已经创建的实体时。由于表单正在等待履行承诺,因此可能无法填充某些下拉列表。
我意识到我可以在我的承诺的成功块中添加一个变量或者其他东西,然后只有在所有变量都为真的情况下才将填充的实体填充到UI上。
Angular 2中是否已经内置了这样的内容?我似乎无法在网上找到这个特殊问题的任何例子。
答案 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];
});