Chrome DevTools 中的 NgZone 超时警告,尽管超时在区域之外运行



仍然在Chrome DevTools中收到警告是正常的吗

[Violation] 'setTimeout' handler took 103ms zone.js:1894

即使您在 ngzone 之外运行所有超时?我是这样做的:

this.zone.runOutsideAngular(() => {
    this._timeout = setTimeout(() => {
    // ...
    });
});

并清除现有超时销毁(角度)

setTimeout运行在 Angular 之外的事实并不意味着它运行在区域之外。

如参考资料所述,

在 Angular 的父区域中同步执行 fn 函数,并返回函数返回的值。

通过runOutsideAngular运行函数可以让你逃离Angular的区域,并做一些不会触发Angular变化检测或受到Angular错误处理的工作。

因此,预计setTimeout仍然在一个区域内运行。

最新更新