我正在尝试使用 Phonegap 读取一些文件并将它们放入数组中。我的数组每行有2个元素,file name
和file 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 变量仍为空。 我怎样才能做到这一点? 谢谢!
答案 0 :(得分:0)
你真的不能这样做。由于它是异步的,所以必须在onload
内完成所有事情才能获得成功。 var sharedContent
的更改只会在onload
函数中显示,除非您setTimeout()
或执行其他异步操作,我不建议这样做。