Javascript 文件读取器到字符串

Javascript 文件读取器到字符串,javascript,filereader,Javascript,Filereader,考虑以下代码 function readSingleFile(evt) { //Retrieve the first (and only!) File from the FileList object var myFile = evt.target.files[0]; var reader = new FileReader(); reader.readAsText(myFile); var myString = reader.toString();

考虑以下代码

function readSingleFile(evt) {
    //Retrieve the first (and only!) File from the FileList object
    var myFile = evt.target.files[0];
    var reader = new FileReader();
    reader.readAsText(myFile);
    var myString = reader.toString();
    alert(myString); // print  - "[object FileReader]"   
}
我尝试将所有文件内容放入
字符串中,例如,如果文件内容是

helloWorld1
helloWorld2

我将获得该内容的
警报。

这不是获得
文件阅读器结果的方式。将您的代码修改为:

function readSingleFile(evt) {
        //Retrieve the first (and only!) File from the FileList object
        var myFile = evt.target.files[0];
        var reader = new FileReader();
        reader.readAsText(myFile);
        reader.onload=function(){alert(reader.result)}
    }

@Markasoftware你好。我正在努力做到这一点。我做到了:
var-bob;reader.onload=function(){bob=reader.result;}console.log(bob)
.console.log显示bob未定义。为什么?@SharikovVladislav这是因为javascript是异步的。让我看一下代码是如何工作的。首先,你做
var-bob。它初始化名为
bob
的未定义变量。然后,执行
reader.onload=function(){bob=reader.result}
,设置事件侦听器。但是,它只是设置事件侦听器。它不等待事件发生,它只是设置一个处理程序。所以,口译员继续说。它不需要等待阅读完成。因此,当您执行
console.log(bob)
时,它会记录未定义的日志,因为读卡器尚未完成,因为您所做的只是添加一个处理程序,该处理程序在完成后将被调用。要使其正常工作,需要将
console.log(bob)
放在
reader.onload
函数中,以便在读取器完成读取之前不会调用它。对不起,如果这没有道理,请问任何问题,如果你不明白。我明白你说的。但是我需要这个处理程序中的文件内容。如何实现它?您只需将需要访问文件内容的所有代码放在处理程序内部(reader.onload处理程序内部)