В ожидании двух методов, которые возвращают наблюдаемые в угловых
У меня есть два метода, которые делают вызовы API и возвращают наблюдаемые.
private method1(): Observable<Home> {
return homeService.call.get();
}
private method2(): Observable<User> {
return userService.call.get();
}
Тогда у меня есть следующие два метода:
private method3(): void {
this.method1().subscribe();
this.method2().subscribe();
}
и последний
private method4(): void {
// does things
this.method3();
}
Я хочу method4
ждать method3
закончить все запросы, чтобы продолжить, но я не знаю, как добиться этого в угловых 8. Любые советы?
1 ответ
Вы, вероятно, смотрите на термин, называемый уплощением наблюдаемых - имея вложенные наблюдаемые. (Если вы не заботитесь только об окончательном ответе - forkJoin
)
У вас есть множество операторов, которые могут помочь вам достичь того, что вам нужно. Вот только некоторые из них. Посмотрите, и вы увидите, какой из них лучше всего подходит для вашего кода.
switchMap - имеет эффект отмены.
mergeMap - "Этот оператор лучше всего использовать, когда вы хотите сгладить внутреннюю наблюдаемую, но хотите вручную контролировать количество внутренних подписок".
forkJoin - "Этот оператор лучше всего использовать, когда у вас есть группа наблюдаемых и заботятся только о конечном полученном значении каждого".