我有一个导出异步函数的文件,比如这个
// api.js
import { getInfo } from "somewhere";
export async function getSomething() {
await getInfo()
}
然后我试着把它导入到另一个像这样的文件中。
// Dashboard.vue
import { getSomething } from "./api.js";
async created() {
await getSomething()
},
但是我收到这个错误
Syntax Error: Unexpected reserved word 'await'. (77:26)
77 | await getSomething()
当然,这都是伪代码,但问题是——为什么我的文件不能将导入的方法识别为异步调用?当某个东西是异步方法时,是否有不同的导入方法?
edit:也许我的代码没有给出足够的上下文,所以这里有一个更好的例子来说明我如何使用异步方法
<template>
<div>Hello world</div>
</template>
<script>
import { getSomething } from "./api";
export default {
methods: {
async init() {
await getSomething()
}
},
async created() {
await this.init()
}
};
</script>
以下是编译失败的确切视图。getAssessment
==在上面的例子中为getSomething
ERROR Failed to compile with 1 error 1:29:06 AM
error in ./src/components/Dashboard.vue?vue&type=script&lang=js&
Syntax Error: Unexpected reserved word 'await'. (79:26)
77 | if (user) {
78 | this.user = user;
> 79 | this.assessment = await getAssessment();
| ^
80 | }
试试这个:
// api.js
import { getInfo } from 'somewhere'
export const getSomething = async () => {
return await getInfo();
}
// another file
import { getSomething } from './api.js'
const created = async () => {
await getSomething();
}
created();