Angular2 - 重复调用服务

时间:2016-10-20 14:29:15

标签: angular typescript rxjs angular2-observables

我有一个从服务器检索数据的服务。此数据用于填充页面。我想每隔5秒刷新一次页面。我尝试了一个非常简单的setInterval()但是然后所有对服务器的调用都是一个接一个地调用而不等待前一个调用完成。例如,当服务器出现故障时,这是一个问题。我现在不知道哪一个是最好的解决方案,可能是rxjs和observables。

1 个答案:

答案 0 :(得分:1)

你可以做这样简单的事情:

#include "math.h"

int main() {
  double d1 = sqrt(4.0);
  float d2 = abs(4.0);
  return 0;
} 

这将每隔5秒进行一次新呼叫。如果你真的只想在上一个之后的5秒内创建一个新的电话,请告诉我,我会更新这个。

如果您只想在上一次结束时启动下一个电话,您可以这样做:

Rx.Observable.interval(5000)
  .flatMap(() => this.http.whateverYouCall)
  .map(resp => resp.json())
  .subscribe((val) => //do something here with the result)

jsbin:http://jsbin.com/fufuqid/13/edit?js,console 你会看到每7秒钟一次" b"已记录。模拟呼叫2秒,刷新前5秒。