我想查询一个RESTful端点刷新我的即时聊天消息。我知道一个即时聊天会的WebSockets最好的方法,我只是想了解RxJS如何与角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));
});
但是我的打字稿transpiler将返回此错误:
属性“flatMapLatest”上类型不存在“可观察<数>”
我使用RxJS 5.0.0-beta.0
如果我使用合并而不是flatMapLatest它不会在所有调用API。
您需要使用switchMap()
,有一个在RxJS 5没有flatMapLatest()
。
见Migrating from RxJS 4 to 5 ......虽然文档是不是switchMap()
很清楚...
返回运用你提供给由源可观察返回可观察到发射的每一项功能,并射出由最近发出的这些观测值发射的项目一个新的观测。