У меня есть несколько методов 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 чтобы убедиться, что они завершены?
У меня есть идея перечислить все наблюдаемые, как:
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
});
}