Ich versuche einen RESTful-Endpunkt abzufragen, um meine Live-Chat-Nachrichten zu aktualisieren. Ich weiß, der beste Ansatz für einen Live-Chat wäre WebSockets, ich versuche nur zu verstehen, wie RxJS mit Angular 2 funktioniert.Angular 2 Polling mit RxJS
Ich möchte jede Sekunde nach neuen Nachrichten suchen. Ich habe den folgenden Code:
return Rx.Observable
.interval(1000)
.flatMapLatest(() => this.http.get(`${AppSettings.API_ENDPOINT}/messages`))
.map(response => response.json())
.map((messages: Object[]) => {
return messages.map(message => this.parseData(message));
});
jedoch meine Typoskript Transpiler kehrt diesen Fehler:
Property 'flatMapLatest' does not exist on type 'Observable<number>'
Ich verwende RxJS 5.0.0-beta.0
Wenn ich Druck verwenden anstelle von flatMapLatest es ruft die API überhaupt nicht auf.
Wie erhalte ich die JSON aus switchMap? Typescript gibt diesen Fehler zurück: Die Eigenschaft 'json' existiert nicht beim Typ '{}' – AndreFeijo
Versuchen Sie 'map()' herauszuziehen und tun Sie dies nach 'switchMap()'. Ich habe es nicht selbst benutzt, und Docs sind keine Hilfe (; – Sasxa
Falls jemand sich fragt, wie man den Json aus switchMap holt, müssen Sie es wie folgt eingeben: '.map ((res: Response) => res.json()) '. Stellen Sie sicher, Sie importiert ** Antwort ** von ** 'angular2/http' ** – AndreFeijo