【发布时间】:2018-02-25 05:47:23
【问题描述】:
例如:我在一个数组中有两个值。 arr = [1,2]
我希望以这样的方式调用 api,在时间 T,我用参数 1 调用一个函数,在 T + 20,用参数 2,然后在 20 秒后,用参数 1 再次调用,依此类推。
【问题讨论】:
标签: javascript angular typescript observable
例如:我在一个数组中有两个值。 arr = [1,2]
我希望以这样的方式调用 api,在时间 T,我用参数 1 调用一个函数,在 T + 20,用参数 2,然后在 20 秒后,用参数 1 再次调用,依此类推。
【问题讨论】:
标签: javascript angular typescript observable
我的解决方案
export default class MyComponent {
arr = [1, 2];
paramIndex = 0;
T = 1000;
ngOnInit() {
setTimeout(() => {
this.toggleParam();
}, T);
/// notice that T is integer you should assign at first as example i will set it equal 1 second
}
toggleParam() {
if(paramIndex == 0)
paramIndex = 1;
else
paramIndex = 0;
this.apiCall(arr[paramIndex]);
setTimeout(()=> {
this.toggleParam();
}, 20)
}
apiCall(myParam) {
}
}
【讨论】:
谢谢大家的帮助,我在上面的场景中找到了使用计数器的方法,如下:
arr=[1,2]
counter = 0
apiCall(){
this.timerSub = Observable.interval(20000).subscribe(() => {
const displayCond = counter % 2;
if (displayCond === 0) {
// call API using 1st item in array
}
else{
// call API using 2nd item in array
}
}
【讨论】: