在导出上放置异步等待



我想导出一个变量,但它被导出为空。我需要等待数据插入,然后再导出,但我不能这样做

let eventGuid = 0
let INITIAL_EVENTS = [];
let datas = ""; 
function getDatas(){
return fetch("http://localhost:3214/events")
.then((data) => data.json())
.catch((err) => console.log(err))
}
async function armazenar() {
datas = await getDatas();
} 

async function api(){
await armazenar()
datas.forEach(element => {
INITIAL_EVENTS.push(element)
});
}
api()
export default INITIAL_EVENTS;
export function createEventId() {
return String(eventGuid++)
}
async function api(){
await armazenar()
datas.forEach(element => {
INITIAL_EVENTS.push(element)
});
}
api()

这个函数是一个async函数api(),但是没有await api()。我不知道这是否解决了你的问题,但你应该修复它。

首先,需要对导出语句进行一些解释。导出的目的是使代码在节点执行的构建过程中可供其他文件使用。export不能做的是向其他文件中的代码提供变量值。简而言之,export不是运行时运行的动态特征。

我将导出一个async默认函数,如下所示。

let eventGuid = 0
function getDatas(){
return fetch("http://localhost:3214/events")
.then((data) => data.json())
.catch((err) => console.log(err))
}
export default async function () {
return await getDatas();
} 

export function createEventId() {
return String(eventGuid++)
}

现在您需要在其他文件中导入我们的默认函数,然后执行它。注意,这样的async函数返回一个promise。具有初始事件的数组将是后一个承诺在解析时返回的结果。

相关内容

  • 没有找到相关文章

最新更新