使用 RxJS 进行 Angular 2 轮询

2023-12-27

我正在尝试轮询 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 转译器返回此错误:

类型“Observable”上不存在属性“flatMapLatest”

我正在使用 RxJS 5.0.0-beta.0

如果我使用merge代替平面地图最新它根本不调用 API。


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

See 从 RxJS 4 迁移到 5 https://github.com/ReactiveX/RxJS/blob/2b707faa5acf9245eb71e8529ba04b2a0d98ecd6/MIGRATION.md#operators-renamed-or-removed...虽然文档不是很清楚switchMap()...

通过将您提供的函数应用于返回 Observable 的源 Observable 发出的每个项目,然后发出这些 Observable 中最近发出的发出的项目,从而返回一个新的 Observable。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 RxJS 进行 Angular 2 轮询 的相关文章

随机推荐