簡體   English   中英

使用RxJS進行Angular 2輪詢

[英]Angular 2 polling with RxJS

我正在嘗試輪詢RESTful端點以刷新我的實時聊天消息。 我知道實時聊天的最佳方法是Websockets,我只是想了解RxJS如何與Angular 2一起使用。

我想每秒檢查一下新消息。 我有以下代碼:

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));
   });

但是我的Typescript轉換器返回了這個錯誤:

屬性'flatMapLatest'在'Observable <number>'類型中不存在

我正在使用RxJS 5.0.0-beta.0

如果我使用merge而不是flatMapLatest,它根本不會調用API。

你需要使用switchMap() ,在RxJS 5中沒有flatMapLatest()

請參閱從RxJS 4遷移到5 ...盡管有關switchMap()文檔不是很清楚......

通過應用一個函數返回一個新的Observable,該函數提供給返回Observable的源Observable發出的每個項目,然后發出這些Observable最近發出的項目。

解釋一下@Sasxa的答案。

SwitchMap在插圖中。 (來自http://reactivex.io/documentation/operators.html

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM