setInterval,带有基于可观察变量

时间:2018-04-16 09:35:39

标签: javascript angular typescript

我无法使 setInterval 正常工作,Time参数值基于我的API(Observable方法)

我的服务:

getInterval(): Observable<string>{
    return this.http.get('http://my.api/dashboard/api/sysparam/refreshinterval')
    .map((res:Response) => <string> res.json().refreshInterval)   
}

这是我的观察到获得间隔值:

this.ConnectionService.getInterval().subscribe(
                data => {
                    this.interval_2 = data;
                }
            )

如果我这样说:

this.intervalStatisticalIndicator = setInterval(() => {
                this.getDataStatisticalIndicator();
            },this.interval_2);

页面只是保持刷新,因为它忽略了 interval_2

中的值

但如果我手动将任何数字分配给变量(没有可观察的),它就可以正常工作。

我做错了吗?我应该使用其他方法代替观察吗? 我对角度和角度都很陌生。 javascript的事情所以请任何帮助将赞赏

1 个答案:

答案 0 :(得分:0)

您只能使用observable执行此操作。您不需要setInterval

import { switchMap } from 'rxjs/operators';
import { interval } from 'rxjs/observable/interval';

this.ConnectionService.getInterval()
  .pipe(switchMap(data => interval(data))
  .subscribe(() =>  this.getDataStatisticalIndicator())