0
var arrayTest;
function handleFiles(files) {
arrayTest = new Array();
for(var i = 0; files[i]; i++) {
var reader = new FileReader();
reader.onload = function(e) {
var binary = e.target.result;
var parentSelector = '#output_' + i;
$(parentSelector).html(binary);
arraytest.push({ 'bin' : binary, 'parentSelector' : parentSelector });
};
reader.readAsBinaryString(files[i]);
}
}
function buttonClick() {
var files = [file1, file2];
handleFiles(files);
console.log(arrayTest); // I got the objects inserted at async function here, length != 0
console.log(arrayTest.length); // 0
console.log(arrayTest[0]); //undefined
// accesing any member of arrayTest returns undefined
}
FireFox Console output.的Javascript全局数组访问成员未定义
上面的代码显示了一个JS是文件转换成二进制字符串,是一个按钮事件后跑和我有是无法访问的全局变量问题ArrayTest中这是用filereader onload事件中新推入的值更新的。是否有解决此问题的方法?
不知道是否它的原因,但它似乎是你的代码中有一个错字:arraytest.push(...),而不是arrayTest.push(...) – erGo 2014-09-27 21:42:54