在javascript中读取同步文件

时间:2013-12-12 23:48:25

标签: javascript file cordova

我正在尝试使用 Phonegap 读取一些文件并将它们放入数组中。我的数组每行有2个元素,file namefile content

我现在这样做:

var sharedContent = "";

function populateArray() {

    for (i = 0; i < entries.length; i++) {
        var singleFile = {};
        singleFile.name = entries[i].name;
        entries[i].file(fileSuccess, fileFail);
        singleFile.content = sharedContent;
        fileArray.push(singleFile);
    }
}

function fileSuccess(file) {
    var reader = new FileReader();
    reader.onloadend = function (evt) {
        sharedContent = evt.target.result;
    }
    reader.readAsText(file);
}

var fileFail = function (error) {
    alert(error.code);
}

这有效,但 fileSuccess 在for循环后被触发, sharedContent 变量仍为空。 我怎样才能做到这一点? 谢谢!

1 个答案:

答案 0 :(得分:0)

你真的不能这样做。由于它是异步的,所以必须在onload内完成所有事情才能获得成功。 var sharedContent的更改只会在onload函数中显示,除非您setTimeout()或执行其他异步操作,我不建议这样做。