Javascript 从local.txt文件读取数据并将其存储在变量中

Javascript 从local.txt文件读取数据并将其存储在变量中,javascript,async-await,Javascript,Async Await,我有一个helper函数(fetchData.js是文件名),它将发送一个json数组,如下所示 export const jsonData = async (file) => { const response = await fetch(file); const jsonData = await response.json(); return jsonData; }; 现在我想在其他文件中使用这个助手 import { jsonData } from './fe

我有一个helper函数(fetchData.js是文件名),它将发送一个json数组,如下所示

export const jsonData = async (file) => {
    const response = await fetch(file);
    const jsonData = await response.json();
    return jsonData;
};
现在我想在其他文件中使用这个助手

import { jsonData } from './fetchData.js';

jsonData('./data2.txt').then((data) => {
    console.log(data);
});
而且它完美地显示数据,绝对没有问题

但如果我做了这样的事

import { jsonData } from './fetchData.js';

let returnedData;
jsonData('./data2.txt').then((data) => {
    returnedData = data;
});
console.log(returnedData);
它返回未定义的

怎么办

编辑:


您可以使用
wait
,因为您的
jsonData
是异步的:

let returnedData = await jsonData('./data2.txt');

由于
承诺
是异步的,因此必须在
然后
块中登录

import { jsonData } from './fetchData.js';

let returnedData;
jsonData('./data2.txt')
.then((data) => {
    returnedData = data;
})
.then(() => console.log(returnedData));


将console.log移到
中,然后将
移到
returnedData=data的正下方
所有使用
returnedData
的操作都应该在
then
中,那么我为什么要使用returnedData呢?我不能对数据也这样做吗?这不是我的重点,我想将数据存储在局部变量中。您必须等待异步
jsonData
console.log
似乎是在设置
returnedData
之前执行的。然后使用
async await
让returnedData=await jsonData('./data2.txt')
如果我这样做,那么我会得到一个错误,await是一个保留字您
jsonData
不是异步的。尝试定义它
异步jsonData(文件){…}
查看