FileReader中的Javascript变量不会持久化

时间:2016-06-09 22:51:09

标签: javascript html5

我正在构建一个Web应用程序,在上传到服务器之前需要进行一些文件验证和编码检查。所以,FileReader对此非常有用,但变量中的值不是持久的,尽管变量是在每个函数之外声明的:我有这个代码,工作单元到达testDesc函数:

var fileDesc1;
var fileDesc2;

window.onload = function () {
    checkFile();
    testDesc();

}//window onload

function checkFile() {
    //input type=file
    var file = fileInput.files[0];

    var reader = new FileReader();

    reader.onload= function (e) {
        var contents = reader.result;


        fileDesc1 = arrayToString(contents);
        fileDesc2 = discoverType2File(fileDesc1);

        ...


    }
    reader.readAsArrayBuffer(file);
}

获得文件描述后,我需要在JS代码中的任何位置使用它们,但事实并非如此:

function testDesc(){

    //fileDesc1 is empty
    encode(fileDesc1);
    ...
    return validatyCheck
}

所有函数都在同一个文件中,但变量是空的。为什么会这样?我以为我认识JS,猜不是。顺便说一句,所有js文件都加载到html body标签的末尾。

0 个答案:

没有答案