Javascript 将FileReader结果推送到数组中

Javascript 将FileReader结果推送到数组中,javascript,arrays,filereader,Javascript,Arrays,Filereader,单击按钮时,我试图将我的FileReader的结果按成一个数组。当我尝试记录数组时,我可以看到只添加了一个项目,我无法通过[x]访问该项目 我很难将文件内容(reader.result)存储在变量中 $(文档).ready(()=>{ const inputFile=document.getElementById('input-file'); 让游戏=[]; $(“#btn推送”)。单击(()=>{ 让file=inputFile.files[0]; let reader=new FileRe

单击按钮时,我试图将我的
FileReader
的结果按成一个数组。当我尝试记录数组时,我可以看到只添加了一个项目,我无法通过
[x]
访问该项目

我很难将文件内容(
reader.result
)存储在变量中

$(文档).ready(()=>{
const inputFile=document.getElementById('input-file');
让游戏=[];
$(“#btn推送”)。单击(()=>{
让file=inputFile.files[0];
let reader=new FileReader();
reader.readAsText(文件);
reader.onload=()=>{
游戏。推送(阅读器。结果);
};
console.log(游戏);//日志数组。
console.log(游戏[0]);//未定义日志。
}
}
文件读取器是。这意味着稍后将调用onload,之后的所有代码将在load事件触发之前执行

要么将所有逻辑放在onload事件中,要么在load事件执行后调用某个函数

另一种方法是使用promise+async/await系列使单击事件也异步:

jQuery($=>{
const inputFile=document.getElementById('input-file')
康斯特游戏=[]
$(“#btn推送”)。单击(异步()=>{
const file=inputFile.files[0]
// https://developer.mozilla.org/en-US/docs/Web/API/Blob/text#Browser_compatibility
//const text=wait file.text()
const text=等待新响应(file).text()
游戏。推送(文本)
console.log(games)//日志数组。
})
})