我想用javascript读取文件并操纵一些变量,所以我使用以下代码:

var error = false;

var fileReader = new FileReader();
fileReader.onload = function(fileLoadedEvent){
    var textFromFileLoaded = fileLoadedEvent.target.result;
    if(textFromFileLoaded.length >=1000){
        error = true;
    }



    console.log(textFromFileLoaded);
};

fileReader.readAsText(uploadFile, "UTF-8");
if(error == true)
    $('#export').prop('disabled', true);


在代码的最后,当我尝试测试错误是否为真时,我发现它为假(这意味着filereader内部错误变量的更改不会持续存在。
有什么问题,请您帮忙。

最佳答案

FileReader.readAsText()是异步的,因此在准备好文件读取之前将执行下一行。

您可以在事件处理程序中设置Disabled属性。

fileReader.onload = function(fileLoadedEvent){
    var textFromFileLoaded = fileLoadedEvent.target.result;
    if(textFromFileLoaded.length >=1000){
        error = true;
        $('#export').prop('disabled', error);
    }
};

fileReader.readAsText(uploadFile, "UTF-8");

关于javascript - Javascript文件阅读器+可变范围内的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58215156/

10-12 15:51