setTimeout 不适用于 Angular5

setTimeout not working with Angular5

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

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

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

将其包装在 zone.run().

首先,从 @angular/core 导入 NgZone,并将其注入到您的组件中。

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

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

我认为你写错了语法 此代码

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

应该是这样的

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

你的语法有误

函数一有两种语法,这是新的语法

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

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

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

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