Typescript:处理服务调用onInit之间的依赖关系的最佳方法

时间:2019-03-04 12:42:56

标签: angular typescript

您好,我正在寻找打字稿最佳实践来处理onInit服务调用之间的依赖关系。 我有在onInit上运行的4个函数,前3个正在填充3个子组件(过滤下垂)。 然后,它们返回具有所选过滤器值的数组。 当我具有选定的过滤器值时,我想运行最后一个函数,该函数使用前3个中的值来构建查询,然后发送数据请求。 然后,该数据将用于填充表。 当前,第四个函数在第三个函数的末尾被调用。 我觉得必须有一种更好的方式来处理异步呼叫,以便希望有人可以向我指出正确的方向。

    this.getCatalogueStatuses();
    this.getCountries();
    this.getAgreementTypes()
    // dependent on function above for filtering
    this.getClaimTypeAndPrices();

1 个答案:

答案 0 :(得分:2)

听起来像您想要forkJoin吗? (https://rxjs-dev.firebaseapp.com/api/index/function/forkJoin):

import { forkJoin } from 'rxjs';

...

forkJoin(
    this.getCatalogueStatuses(),
    this.getCountries(),
    this.getAgreementTypes(),
)
.subscribe(([catalogueStatuses, countries, agreementTypes]) => {
    // use return data for method below
    this.getClaimTypeAndPrices();
});

这假设您的方法this.getCatalogueStatuses(), this.getCountries() and this.getAgreementTypes()返回Observables