У меня есть вложенные запросы API, и я разделил их, как если бы я делал это с обещаниями (.then) с оператором flatMap. Так что это прекрасно работает, но я также должен проверить, действителен ли ответ, а если нет, я буду ждать правильного ответа, поэтому я добавил оператор skipWhile.
init(): Observable<any> {
return this.loadDataA();
}
loadDataA(): Observable<any> {
return this._serviceA.loadData()
.skipWhile((foo) => foo === undefined)
.flatMap((foo) => this.loadDataB(foo.importantProp));
}
loadDataB(important: string): Observable <any> {
return this._serviceB.loadData(important)
.skipWhile((bar) => bar === undefined)
.map((bar) => true);
}
Проблема в том, что первый skipWhile в функции loadDataA работает как надо, он не переходит в flatMap, если ответ не определен. Оператор skipWhile в loadDataB не входит в .map, но возвращается к плоской карте loadDataA, поэтому он никогда не выполняет .map в функции loadDataB. Итак, как я могу выполнить вложенное поведение skipWhile? Спасибо!