【发布时间】:2016-10-22 15:59:16
【问题描述】:
我玩了 angular2,过了一会儿就卡住了。
使用http.get 可以很好地处理单个请求,但我想每 4 秒轮询一次实时数据,经过一段时间的修改并阅读了很多我最终得到的响应式数据:
Observable.timer(0,4000)
.flatMap(
() => this._http.get(this._url)
.share()
.map(this.extractData)
.catch(this.handleError)
)
.share();
在http.get-observable 发出请求结果后,是否有一种简单 的方法来启动(4 秒)间隔? (或者我最终会进入 observable-hell?)
我想要的时间线:
Time(s): 0 - - - - - 1 - - - - - 2 - - - - - 3 - - - - - 4 - - - - - 5 - - - - - 6
Action: Request - - Response - - - - - - - - - - - - - - - - - - - -Request-...
Wait: | wait for 4 seconds -------------------------> |
【问题讨论】:
-
observable-hell是什么意思? -
观察 observable 再次触发它。不知何故?
-
这是您的确切要求,所以我认为这种方法没有问题。
-
昨天有人问了一个类似的问题:stackoverflow.com/a/37931742/1961059
-
这也不会在请求完成后等待n秒,它只会延迟一个请求,如果前一个请求的时间比间隔时间长。
标签: javascript angular rxjs observable reactivex