当前位置: 首页 > 知识库问答 >
问题:

如何在ngZone外部运行异步函数?[重复]

邓建柏
2023-03-14

我已尝试在当前区域外删除脚本:

  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

共有1个答案

史烨
2023-03-14

ngAfterViewInit函数是异步的,但是您已经将this.ngZone.runOutsideAngular与非异步回调函数一起使用。

你的代码应该是这样的...

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

async run() { // TODO }
 类似资料:
  • 我在一个函数中有这样的代码块: 它获取一些数据,然后对数据运行验证()。 但是,我对数据的验证实际上也是异步的,因为它是根据一个json模式来验证数据的,而json模式位于一个独立的json文件中,所以它必须首先读取该文件。 我使用了一个承诺来读取文件内容,然后进行验证: 如何编辑此问题中的顶部代码块以解释if语句()中的异步函数?

  • 我试图理解promise、回调等在node.js中是如何工作的,特别是在访问函数之外的值的情况下。我花了一些时间在这里浏览答案如何从异步调用返回响应?在这里调用条纹API等待,但我尝试的每一个变化,我总是以'订阅'函数之外未定义结束。 谢啦

  • 尽管有几个其他的解决方案,我还没有找到一个真正解决我的问题。我有一个HTML文件,其中包含一个带有 在身体里有一个按钮,像这样: 并且我有Javascript函数basicAlert(): 我已经花了两天时间在这个问题上了,但是我不能让onclick函数在外部文件中执行basicAlert()。我可以在持有函数的HTML中有一个脚本,它将完美无瑕地运行,但当函数在外部文件中时,它就不运行了。尝试的

  • 通过使用 Web Worker 在单独的线程中运行一个函数,允许长时间运行的函数不会阻塞 UI。 使用 Blob 对象URL创建一个新的Worker,其内容应该是所提供函数的字符串化版本。 立即发送回调用函数的返回值。 返回一个 promise ,监听 onmessage 和 onerror 事件并解析 worker 发回的数据,或者抛出一个错误。 const runAsync = fn => {

  • 问题内容: 我试图将两个异步函数链接在一起,因为第一个具有条件返回参数,导致第二个运行或退出模块。但是,我发现规格中找不到奇怪的行为。 这是我的代码的混帐摘要(您可以在此处查看完整的范围),该代码只是检查玩家是否已经在大厅中,但这无关紧要。 接下来,我们有这个异步功能。 如果,则无需运行此功能。 我试着做 我希望这将等待结果,以便可以有条件地运行,但是我收到了没有具体细节的类型错误。 为什么您不能

  • 我是JavaScript和React的新手,我正试图远离教程,所以为了自己的学习利益,我开始制作一个简单的应用程序,但遇到了功能异步运行的障碍。 在中,有一个,其回调中包含以下内容: 如何使上述两个函数同步运行使用在中设置的,但下面的显示在完成之前启动。 我已经阅读了一些参考资料,其中提到使用promise,但我不知道如何应用它。。。我还想知道是否可以通过/实现。 完整(ish)代码:(为了简单起