setTimeout不能与Angular5一起使用

时间:2017-12-23 15:25:52

标签: javascript angular5

this.fetchRequests(this)会在视图初始化后立即执行,而不是等待20秒。

我知道在旧版本中我们必须使用包装器,但在新版本中我不需要这些。任何有关这方面的帮助都会有所帮助。

ngAfterViewInit() {
    setTimeout(()=>{
        this.fetchRequests(this);
    }), 10000;
}

3 个答案:

答案 0 :(得分:4)

我认为你写错了语法 这段代码

setTimeout(()=>{
    this.fetchRequests(this);
}), 10000;

应该是这样的

setTimeout(()=>{ this.fetchRequests(this); },1000);

答案 1 :(得分:2)

将其包裹在zone.run()

首先,从NgZone导入@angular/core,然后将其注入您的组件。

然后,将ngAfterViewInit修改为如下所示:

ngAfterViewInit() {
    this.zone.run(() => {
        setTimeout(()=>{
            this.fetchRequests(this);
        }, 10000);
    });
}

答案 2 :(得分:1)

您的语法错误

函数一的两个语法是全新的

setTimeout(()=>{
    this.fetchRequests(this); 
},1000);

下面是第二种语法,您可以同时使用它们

setTimeout(function(){
        this.fetchRequests(this); 
},1000);

目前在Angular 9- Typescript和Nodejs和最新的javascript版本中都可以使用