【发布时间】:2019-07-12 15:57:33
【问题描述】:
我有一个名为 fetchServiceProviders 的函数,它将返回一个服务提供者列表,并让我通过调用另一个服务来设置服务提供者的徽标。我通过使用两个订阅实现了这一点。
第一次订阅时,我得到了列表。然后我映射它并通过所有服务提供商的 id 调用 fetchServiceProviderLogo。
这可以通过一次订阅来完成吗?我的方法好吗?如果不是,问题是什么?一些 rxjs 运营商如何做到这一点?
我尝试了 map 和 flatMap 运算符,但没有得到任何线索。
fetchServiceProviders ()
{
this.subscribers.fetchServiceProvidersLogoSub = this.serviceProviderService.fetchServiceProviders( new Map() ).subscribe(
data =>
{
this.providers = data._embedded.serviceProviders;
this.providers.map(
provider =>
{
this.subscribers.fetchServiceProvidersLogoSub =
this.serviceProviderService.fetchServiceProviderLogo( { 'id': provider.id } ).subscribe(
logo =>
{
this.createIndividualLogoFromBlob( provider, logo );
}
);
}
);
}
)
}
【问题讨论】:
-
服务提供商有多少?
-
你的
fetchServiceProviders和fetchServiceProviderLogoObservables 完成了吗?它们只发出一个值还是多个值?