Angular2:setTimeout只调用一次

时间:2016-11-03 13:27:04

标签: javascript angular typescript settimeout

我正在Angular2中实现需要使用service httpd restart

的功能

我的代码:

setTimeout

public ngAfterViewInit(): void { this.authenticate_loop(); } private authenticate_loop() { setTimeout (() => { console.log("Hello from setTimeout"); }, 500) } setTimeout启动,但循环仅执行一次,例如。 “Hello fromsetTimeout”只打印一次。

问题:如何更改代码以使setTimeout有效?

2 个答案:

答案 0 :(得分:10)

 private authenticate_loop() {
    setInterval (() => {
      console.log("Hello from setInterval");
    }, 500)
 }

setTimeout只会运行一次,除非您创建另一个setTimeout

答案 1 :(得分:3)

编辑:更具体地针对不同的角度版本:

Angular2 中,您不再需要使用$ timeout / $ interval。因此,对于这里的问题, setInterval 是正确的解决方案。

对于任何对原始回复感兴趣的人(针对Angular1),请阅读以下内容:

在angular.js应用程序中使用$interval

如果你想在angular.js应用程序中的其他地方使用setTimeout,你最好使用$timeout服务。

$ timeout $ interval 的优势在于,它们会更新范围,而setTimeout / setInterval则不会。