RxJs Array von Observable to Array
Für eine mit Angular2 in TypeScript geschriebene Webanwendung muss ich mit RxJs @ arbeitObservable
s.
Da ich noch nie zuvor RXJs verwendet habe und ich mit der reaktiven Programmierung im Allgemeinen noch nicht vertraut bin, habe ich manchmal Schwierigkeiten, den richtigen Weg zu finden, um bestimmte Dinge zu tun.
Ich stehe jetzt vor einem Problem. wo muss ich ein @ konvertierArray<Observable<T>>
In einObservable<Array<T>>
.
Ich werde versuchen, es mit einem Beispiel zu erklären:
- Ich habe einObservable
, das gibt mir eine Liste vonUsers
(Observable<Array<User>>
)
- DasUser
-Klasse hat eine FunktiongetPosts
Rückgabe einesObservable<Array<Post>>
.
- Ich muss das @ zuordnObservable<Array<User>>
zu einemObservable<Array<Post>>
um alle @ auszuwertPost
s innerhalb desonNext
Funktion.
Ich kann leicht von @ abbildObservable<Array<User>>
zuObservable<Array<Observable<Array<Post>>>>
usingmap((result : Array<User>) => result.map((user : User) => user.getPosts()))
ans Ich kann ein @ verflachArray<Array<Post>>
In einArray<Post>
.
Aber ich kann einfach nicht den richtigen Weg finden, um das @ abzubildeObservable<Array<Observable<Array<Post>>>>
In einObservable<Array<Array<Post>>>
Bis jetzt habe ich dascombineLatest
Funktion zusammen mitflatMap
.
Für mich schien es zu funktionieren und der von mir verwendete Editor (Atom-Editor) zeigte keinen Fehler. Jetzt verwende ich jedoch Netbeans, was mir einen Fehler in diesem Code anzeigt. Auch das Kompilieren des Codes mit "tsc" führt zu Fehlern.
Das sieht so aus:
Argument of type '(result: Post[]) => void' is not assignable to parameter of type 'NextObserver<[Observable<Post>]> | ErrorObserver<[Observable<Post>]> | CompletionObserver<[...'.
Type '(result: Post[]) => void' is not assignable to type '(value: [Observable<Post>]) => void'.
Also meine Frage ist:
Wie kann ich ein @ "verflachen"Array
vonObservables
In einArray
?