2017-06-20 190 views
0

如何在Angular 2的设定时间间隔中调用函数。我希望在特定的时间间隔(例如10秒)调用/触发它。 对于EG: TS文件如何在Angular 2中每10秒调用一次函数?

num: number = 0; 
array: number[] = [1,5,2,4,7]; 
callFuntionAtIntervals(){ 
    if(num==5){ 
     num=0;  
    } 
    num++; 
} 

HTML:

<div>{{ array[num] }}</div> 

所以基本上格值会间隔改变

+0

使用'Observable.interval'。 – 2017-06-20 11:14:47

+1

[如何在angular2中每2分钟调用一次函数?](https://stackoverflow.com/questions/36133430/how-to-call-function-every-2-mins-in-angular2) –

+0

可能的重复[Angular2 http的间隔](https://stackoverflow.com/questions/35316583/angular2-http-at-an-interval) –

回答

2

Observable.interval(10000).takeWhile(() => true).subscribe(() => this.function());

无限循环,每一个:10秒function()是被称为

+0

'takeWhile'在这里完成了什么? – 2017-06-20 18:18:50

0

您也可以尝试传统的setInterval函数。

setInterval(() => { 
    this.callFuntionAtIntervals(); 
}, 1000); 
1

在您的TS逻辑,定义基于一个 “间隔”,这会发出值0,1,2,3,4,0,1,可观察到...

this.index = Observable.interval(10000).map(n => n % this.array.length); 

在您的组件中,使用async展开该观察值并将其用于索引到数组中。

{{array[index | async]}}