繁体   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