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

时间:2017-05-03 20:38:45

标签: javascript asynchronous promise async-await ecmascript-2017

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

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

1 个答案:

答案 0 :(得分:5)

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

解决方案:

  • 不要使用异步功能(直接使用promises)
  • 在使用Babel
  • 之类的代码执行之前转换代码

可以在https://kangax.github.io/compat-table/es2016plus/#test-async_functions找到有关哪种环境支持异步功能的信息。