Ниже приведен фрагмент того, чего я пытаюсь достичь (в классе компонентов):
this.dataService.fetchPerson()
.mergeMap(...)
.mergeMap(...)
.mergeMap(
(response: Person[]) => {
// If this.job_id > 0, where job_id is declared in the component class
// Perform next request, returns <Children[]>
// Else
// End chain
}
).subscribe(...);
Сначала нужно выполнить несколько запросов, а затем это условие, которое определитесли цепь должна быть разорвана или должен быть сделан последний запрос.Я посмотрел некоторые примеры в Интернете, но они, кажется, немного отличаются от того, что я пытаюсь сделать?Поправьте меня, если я ошибаюсь.
Я пробовал ff:
.mergeMap(
(response) => {
if(response instanceof Person) {
return this.dataService.getOtherInfo();
} else {
return Observable.empty;
}
})
.subscribe(
(response: any) => { ... }
);
Но я получаю ошибки компиляции, и я обычно не уверен, что это правильный способсделать это.
ошибка TS2345: Аргумент типа (response: Person []) => ((scheduler ?: SchedulerLike) => Observable) |Наблюдаемый 'не доступен параметру типа' (значение: Person [], index: number) => ObservableInput '.