Javascript setTimeout不使用Angular5

Javascript setTimeout不使用Angular5,javascript,angular5,Javascript,Angular5,this.fetchRequests(this)在视图初始化后立即执行,而不是等待20秒。 我知道在旧版本中,我们必须使用包装器,但在新版本中,我想这些不是必需的。这方面的任何帮助都会有帮助 ngAfterViewInit() { setTimeout(()=>{ this.fetchRequests(this); }), 10000; } 将其包装在区域中。运行() 首先,从@angular/core导入NgZone,并将其注入组件 然后,将ngAfte

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

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

ngAfterViewInit() {
    setTimeout(()=>{
        this.fetchRequests(this);
    }), 10000;
}
将其包装在
区域中。运行()

首先,从
@angular/core
导入
NgZone
,并将其注入组件

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

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

我想你写错语法了 此代码

setTimeout(()=>{
    this.fetchRequests(this);
}), 10000;
应该是这样的

setTimeout(()=>{ this.fetchRequests(this); },1000);
你的语法错了

函数1有两种语法,它是新的

setTimeout(()=>{
    this.fetchRequests(this); 
},1000);
下面的第二个语法是旧语法,您可以同时使用它们

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

在Angular 9-Typescript和Nodejs中,这两个版本都可以正常工作,到目前为止,最新的javascript版本

您的结束时间
太早了。它应该在
1000
之后。您是否尝试过此代码而没有出现印刷错误?谢谢@wilsonhobbs。这很有效,但我发现实际问题是一个愚蠢的语法错误。是的,我注意到了。但是,如果您想让它与更改检测一起工作,您可以这样做。