如何在 ngZone 之外运行异步功能? [复制]

Posted

技术标签:

【中文标题】如何在 ngZone 之外运行异步功能? [复制]【英文标题】:How to run async function outside ngZone? [duplicate] 【发布时间】:2021-12-11 02:07:58 【问题描述】:

我试图在当前区域之外调整脚本:

  async ngAfterViewInit(): Promise<void> 
     this.ngZone.runOutsideAngular(() => 
       await this.run();
     );
  
  
  async run()  // TODO 

我收到此错误:

'await' expressions are only allowed within async functions and at the top levels of modules.ts

【问题讨论】:

这能回答你的问题吗? Syntax for an async arrow function 【参考方案1】:

ngAfterViewInit 函数是异步的,但是您使用 this.ngZone.runOutsideAngular 和非异步回调函数。

你的代码需要看起来像这样......

ngAfterViewInit(): void 
    this.ngZone.runOutsideAngular(async () => 
        await this.run();
    );


async run()  // TODO 

【讨论】:

以上是关于如何在 ngZone 之外运行异步功能? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

NgZone/Angular2/Ionic2 TypeError:无法读取未定义的属性“运行”

如何在异步功能上使用 debounce? [复制]

如何修复 Discord.py 不为语音命令运行我的异步功能?

提前编译时出现 SystemJS 错误(NgZone 没有提供程序)

在 StackBlitz 中出现“this._ngZone is undefined”错误

如何使箭头功能异步? [复制]