我正在尝试轮询 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(使用前将#替换为@)