gpt4 book ai didi

Javascript文件阅读器

转载 作者:行者123 更新时间:2023-12-02 07:40:29 26 4
gpt4 key购买 nike

我可能只是不了解文件阅读器 api,但是

当我尝试运行时:

for (var i = 0, f1, f2; f1 = files[sorted_index[i]], f2 = files[sorted_index[i+1]]; i=i+2) {
var file_one;
var file_two;

if(f1.size < f2.size){
file_one = f1;
file_two = f2;
} else {
file_one = f2;
file_two = f1;
}

var file_one_contents;
var file_two_contents;


var reader = new FileReader();
reader.readAsText(file_one);
reader.onload = readSuccess;

function readSuccess(evt){
file_one_contents = evt.target.result;
}
var reader = new FileReader();
reader.readAsText(file_two);
reader.onload = readSuccess2;

function readSuccess2(evt2){
file_two_contents = evt2.target.result;
}

console.log(file_one_contents);
console.log(file_two_contents);

控制台日志只包含undefined。脚本的目标是读取两个 CSV,然后从这对文件中获取数据并进行一些计算。

谢谢!

最佳答案

API 异步。操作完成时会调用“成功”函数,并且不会立即执行。

将您的 console.log() 调用移动到 内部 处理程序函数。

edit — 如果您需要等到两个文件都准备好后再开始执行操作,您可以执行以下操作:

  var countdown = 2;

var reader = new FileReader();
reader.readAsText(file_one);
reader.onload = readSuccess;

function readSuccess(evt){
file_one_contents = evt.target.result;
countdown--;
if (countdown === 0) go();
}
var reader = new FileReader();
reader.readAsText(file_two);
reader.onload = readSuccess2;

function readSuccess2(evt2){
file_two_contents = evt2.target.result;
countdown--;
if (countdown === 0) go();
}

当然,有更复杂的方法可以做到这一点,但这个简单的技巧只是等到计数器为零后再调用“go()”,它表示处理文件的函数。

关于Javascript文件阅读器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11725272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com