Я думаю, что прочитал более 100 сообщений на эту тему, и до сих пор не могу понять, как связать два вызова HttpClient с помощью rxjs в Angular 6.
Допустим, у меня есть служба с такой подписью:
GeoService {
getState(): Observable<string> {
return this.http.get<string>(stateURL);
}
getCities(state: string): Observable<string[]> {
return this.http.get<string[]>(citiesURL + state);
}
}
Я не могу понять, как получить штат и соответствующий список городов в моем компоненте:
import { Observable } from 'rxjs';
import { map, flatMap, mergeMap, filter, switchMap } from 'rxjs/operators';
...
ngOnInit() {
this.svc.getState().
pipe(map((state) => {
this.state = state;
return this.svc.getCities(state);
}),
mergeMap((cities) => this.cities = cities))
).
subscribe(console.log('done'));
Код выше в одном измои 20 случайных попыток объединить pipe / map / mergeMap / подписку всеми возможными способами ... рабочий пример был бы очень признателен:)
Спасибо!
Редактировать: Нетиз «возможных дубликатов» постов содержат реальный пример, который работает