Я пытаюсь использовать оператор forkJoin
для объединения двух наблюдаемых и вывода нового значения. Один из вызовов возвращает массив объектов с данными, относящимися к нескольким людям в страховом полисе (эта часть не может измениться). Другая наблюдаемая говорит нам, кто вошел в систему. Я думал об использовании forkJoin
, чтобы получить оба значения и вернуть информацию только для вошедшего в систему пользователя. Вот как я пытаюсь создать эту новую наблюдаемую информацию:
this.incentiveStepsHistory$ = forkJoin({
incentiveStepsHistory: this._steps.getIncentiveStepsHistory(year),
loggedInPerson: this._member.loggedInPerson$,
}).pipe(
tap((data: any) => console.log(data)),
map((data: any) => {
// get the data that I want
})
untilDestroyed(this),
)
Я пробовал этот способ, а также избавлялся от части this.incentiveStepsHistory$ =
и просто подписывался (только для целей тестирования). Когда я делаю это и проверяю вкладку «Сеть» в инструментах разработчика, я вижу первый сделанный звонок и возвращаюсь успешно. Вторая наблюдаемая loggedInPerson
- наблюдаемая BehaviorSubject.asObservable
. Когда я pipe
и tap
в службе, где создается эта наблюдаемая, данные записываются на консоль. Так что обе наблюдаемые работают технически.
Я также пробовал параметр forkJoin
, являющийся объектом, подобным приведенному выше, а также передавал каждую наблюдаемую в качестве своего собственного параметра. Нет разницы, все работает одинаково.
Проблема в том, что данные никогда не возвращаются в компонент, где создается forkJoin
. tap
в трубе, показанной здесь, никогда не попадет, как и map
. Подписка либо явным образом, либо через канал async
в шаблоне имеет тот же эффект: ничего не выводится.
Я чувствую, что все сделал правильно, но ничего не происходит. Любые советы приветствуются.