我正在尝试使用Angular 2.0.0RC5和RxJS 5.0.0-beta.6构建一个示例实时应用程序。虽然我正在使用这段代码:
import {IntervalObservable} from 'rxjs/observable/IntervalObservable';
...
return IntervalObservable.create(1000)
.flatMap(() => this.http.get('filename.json'))
.map(this.extractDataCallBack)
.catch(this.handleError);
这是正确的方法吗?当前的RxJS api文档似乎指定了不同的方法。有没有办法升级到最新版本的RxJS而不会破坏所有内容?
Observable.interval()
功能发生了什么变化?我已经看到了几个使用它的例子。
你可以提供的任何东西都可以为它提供一些亮点。
非常感谢
JT
答案 0 :(得分:2)
Observable.interval
只是IntervalObservable.create
的快捷方式:
https://github.com/ReactiveX/rxjs/blob/master/src/observable/interval.ts
答案 1 :(得分:0)
谢谢大家,所以这很有用。
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
import 'rxjs/add/observable/concat';
import {IntervalObservable} from 'rxjs/observable/IntervalObservable';
...
private serverGetRequestContinuous(requestInterval: number, jsonFileName: String): Observable<any> {
return Observable.concat(Observable.of(null), IntervalObservable.create(10000))
.flatMap(() => this.http.get('filename.json'))
.map(this.extractDataCallBack)
.catch(this.handleError);
}
通过连接这两个Observable,第一个请求没有延迟。如果单独调用IntervalObservable.create(requestInterval),则轮询将仅在指定的requestInterval之后启动。第一个Observable现在导致单个请求,因此在UI中显示数据没有延迟。第二个Observable每10秒轮询一次。