异步函数示例()或异步示例()?
async function example() or async example()?
为什么这样写是错误的:
'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'
}
}
这很混乱。我认为后者也是错误的。
有什么解释吗?
第一个尝试(但失败)声明多个单独的函数,而第二个创建一个包含多个 的对象文字,然后默认导出。顺便说一句,没有 async
关键字也是一样的。你会想要使用
export async function example1() {
return 'example 1'
}
export async function example2() {
return 'example 2'
}
此行为与 async
或 export
无关。它是 ES6 增强对象属性的一部分:
这些是等价的:
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(); },
};
为什么这样写是错误的:
'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'
}
}
这很混乱。我认为后者也是错误的。
有什么解释吗?
第一个尝试(但失败)声明多个单独的函数,而第二个创建一个包含多个 async
关键字也是一样的。你会想要使用
export async function example1() {
return 'example 1'
}
export async function example2() {
return 'example 2'
}
此行为与 async
或 export
无关。它是 ES6 增强对象属性的一部分:
这些是等价的:
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(); },
};