【问题标题】:unable to call asynchronous function inside setInterval function无法在 setInterval 函数中调用异步函数
【发布时间】:2020-07-03 22:53:59
【问题描述】:

我想调用从setInterval 函数内部的服务类实例调用的异步函数。

        class async {

        constructor(public service: Service){}            

            async doSomeAsyncTask(){

               setInterval(await this.service.anotherAsyncTaskInTheServiceClass(),3000); 

       //want to call the inside of setInterval function repeatedly in every 3ms.       
      } 
    }
  }

【问题讨论】:

  • 不是因为this关键字吗?我猜不需要指定它
  • 那么你正在执行函数,而不是分配它,你为什么要使用 await?

标签: javascript typescript setinterval


【解决方案1】:

setInterval 期望第一个参数是一个函数,所以我认为它应该是

setInterval(async () => { await this.service.anotherAsyncTaskInTheServiceClass() },3000); 

*感谢@Evariste 的更正*

【讨论】:

    【解决方案2】:

    请务必将任何可能引发异常的操作包装在用作 setInterval/setTimer 参数的异步函数中,以避免未处理的异常,请参阅 Async, Promises, and Timers in Node.js

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-29
      • 1970-01-01
      • 2019-01-20
      • 2012-07-25
      • 1970-01-01
      相关资源
      最近更新 更多