【发布时间】:2020-04-26 16:10:48
【问题描述】:
我有一些返回 Observable 数据的 http 方法。所有方法都投入使用:
class Service {
requests1(): Observable<any> {
return http...;
}
requests2(): Observable<any> {
return http...;
}
requests3(): Observable<any> {
return http...;
}
}
我在应用程序的某个地方使用它:
Service.request1().subscribe((data) => {
console.log(data);
});
在嵌套组件中也调用另一个请求:
Service.request2().subscribe((data) => {
console.log(data);
});
如何使用 forkJoin 从应用程序的不同部分加入它们?
forkJoin(request1, request2) {}
问题是一个request1从父组件调用,另一个request2在子组件内。
我需要 joinFork 来确保它们完成?
我想列出所有 Observable,例如:
export let request1Obs: Observable<any>;
export let request2Obs: Observable<any>;
export let request3Obs: Observable<any>;
然后在我调用服务器的地方使用:
request1Obs = Service.requests1();
request2Obs = Service.requests2();
request3Obs = Service.requests3();
然后子 A component 使用这个:
ngOninit() {
request1Obs.subscribe(() => {});
}
在另一个孩子B component 中使用这个:
ngOninit() {
request2Obs.subscribe(() => {});
}
在父组件中:
ngOnInit() {
forkJoin(request1Obs, request2Obs).subscribe((data) => {
// All requestes were finished in application
});
}
【问题讨论】:
标签: angular rxjs angular6 angular8