如何导入异步函数并使用 await -- 错误 意外的保留字'await'



我有一个导出异步函数的文件,比如这个

// 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();

最新更新