为什么这样写是错误的:

'use strict'

async example1 () {
  return 'example 1'
}

async example2 () {
  return 'example 2'
}

export { example1, example2 }

像这样很好:
export default {
  async example1 () {
    return 'example 1'
  },
  async example2 () {
    return 'example 2'
  }
}

这很令人困惑。我认为后者也是错误的。

有什么解释吗?

最佳答案

此行为与asyncexport无关。它是ES6增强对象属性的一部分:

  • http://es6-features.org/#PropertyShorthand
  • http://es6-features.org/#MethodProperties

  • 这些是等效的:
    const foo = 123;
    const a = {
      foo: foo,
      bar: function bar() { return 'bar'; },
      baz: async function baz() { return await something(); },
    };
    


    const foo = 123;
    const a = {
      foo,
      bar() { return 'bar'; },
      async baz() { return await something(); },
    };
    

    关于javascript - 异步函数example()还是异步example()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45800105/

    10-16 00:29