I have a problem with Subject
this.subjectService.createNext(this.service.getData(pageNumber=1)
this.subjectService.createNext(this.service.getData(pageNumber=2)
this.subjectService.createNext(this.service.getData(pageNumber=3)
I call 3 next methods because I have to download three API pages with data (3x10).
In another component I subscribe this subject:
this.subjectService.getData()
.pipe(flatMap(res => res))
.subscribe((result) => {
console.log(result);
});
I'm using flatMap because without flatMap i receive:
>> Observable {_isScalar: false, source: Observable, operator: MapOperator}
>> Observable {_isScalar: false, source: Observable, operator: MapOperator}
>> Observable {_isScalar: false, source: Observable, operator: MapOperator}
The problem is that when I'm using flatMap then I can't iterate all pageNumbers.
this.subjectService.getData()
.pipe(tap(() =>
console.log(pageNumber))) /* It returns 1,2,3
.pipe(flatMap(res => res))
.pipe(tap(() =>
console.log(pageNumber))) /* after flatMap: It returns 3,3,3
.subscribe((result) => {
console.log(result);
});
Maybe you know how to mix flatMap (to get normal data, avoid _isScalar...) and iterate all pageNumbers per observable, not only last called with createNext(pageNumber=3).