如何在对象字面量中定义异步函数

How can I define an async function in an object literal

每当我尝试以这种方式在对象中定义异步函数时,它都会抛出语法错误。

let obj = {
  fn: async function fn() {
    return 10;
  }
}

您发布的代码在语法上是正确的。如果您收到语法错误,那么您尝试的环境 运行 中的代码不支持异步函数(考虑到此功能尚未正式发布,这并不奇怪)。

解决方案:

  • 不要使用异步函数(直接使用 promises)
  • 在执行之前转换您的代码,例如 Babel.

有关支持异步函数的环境的信息,请参见 https://kangax.github.io/compat-table/es2016plus/#test-async_functions