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

Sey*_*oya 0 javascript asynchronous promise async-await ecmascript-2017

每当我尝试在对象内部定义异步函数时,它会抛出语法错误.

let obj = {
  fn: async function fn() {
    return 10;
  }
}
Run Code Online (Sandbox Code Playgroud)

Fel*_*ing 5

您发布的代码在语法上是正确的.如果您遇到语法错误,那么您尝试运行代码的环境不支持异步函数(这并不一定令人惊讶,因为此功能尚未正式发布).

解决方案:

  • 不要使用异步函数(直接使用promises)
  • 在使用像Babel这样的代码执行代码之前转换代码.

有关哪些环境支持异步功能的信息,访问https://kangax.github.io/compat-table/es2016plus/#test-async_functions.