Angular: Subject - flatMap problem

0

Witam serdecznie,
mam problem z Subject RXJS.

this.subjectService.createNext(this.service.getData(''1")  /* 1 = pageNumber
this.subjectService.createNext(this.service.getData(''2")  /* 2 = pageNumber
this.subjectService.createNext(this.service.getData("3")  /* 3 = pageNumber

W pewnym komponencie wywołuję 3 metody next (trzeba pobrać zawartość 3 stron API, każda po 10 values).
W innym komponencie jest .subscribe do Subject.

Jeżeli nie dodam flatMap:
.pipe(flatMap(res => res).subscribe ...
dostaje osobno 3 strony poprzez 3 osobne observables (dobrze rozumiem?)
ale ...
wtedy wszystko jest widziane jako "... Observable _isScalar ...", nie jako lista values.

Jeżeli dodam flatMap:
wtedy wszystkie 3 strony są spłaszczone jako jeden Observable i oczywiście dostaje values z 3 stron z API ale:
this.subjectService.createNext(this.service.getData("3")
dostaje tylko liczbę "3" - ostatni wywołany createNext().
gdy mapuję console.log(pageNumber) wypisuje mi:

>>3
>>3
>>3
zamiast
>>1
>>2
>>3

jak to ma miejsce gdy nie użyje flatMap w pipe()

Czy ktoś może wie jak rozwiązać problem by dane pobierane były widziane jako value_array (działa gdy użyje flatMap) i jednocześnie by nie spłaszczało (1,2,3 zamiast 3,3,3)

0

Rxjsa sam się dopiero uczę, ale próbowałeś z Observables.forkJoin + combineLatest?

1 użytkowników online, w tym zalogowanych: 0, gości: 1