每隔X秒调用一次函数

时间:2018-05-24 08:51:28

标签: angular typescript

有没有办法在Angular 2 +中每隔X秒或几分钟触发一次功能?

例如,如果我想每隔60秒从我的主myService.refreshloginStatus()获取app.component函数怎么办?

我发现this question正在互联网上搜索,但我不知道它是否也适用于此以及如何在Angular中实现...有人能在Angular中为我提供具体用法吗?

PS:如果您认为此问题可能与链接的问题重复,请在评论中告诉我,我必须将其删除

3 个答案:

答案 0 :(得分:3)

您可以使用setInterval()功能

setInterval(()=> { this.myFunc() }, timeIntevalSeconds * 1000);

答案 1 :(得分:2)

const reloadInterval = 60;

timer(0, reloadInterval).pipe(
  mergeMap(_ => this.myService.myHttpCall())
).subscribe()

那就是回答你的问题。但我真的不认为从组件中做到这一点是个好主意,你应该直接从你的服务中做到这一点。

此外,如果您正在寻找更高级的答案,可以查看here

答案 2 :(得分:0)

var intervalPromise;
$scope.startTimer = function(fn, delay) {
    intervalPromise = $interval(function() {
        fn();                  
    }, delay);
};

$scope.startTimer(hello, 2000);

hello(){
  console.log("hello");
}