我正在使用HTML5文件API来获取图片的宽度。
它正常工作,console.log正在输出正确的数量。
我需要将值保存到变量fileWidth
,以便我可以在函数外部访问它。我在函数外部创建了一个空变量,并期望使用函数内部的alue进行更新,但无论我尝试什么都失败。
这是我的代码:
var fileWidth;
var reader = new FileReader;
reader.onload = function() {
var img = new Image;
img.onload = function() {
fileWidth = img.width;
console.log(fileWidth);
};
img.src = reader.result;
};
reader.readAsDataURL($('#submission-file')[0].files[0]);
任何人都可以看到为什么变量没有被更新?
编辑代码:
var fileWidth;
var reader = new FileReader;
reader.onload = function() {
var img = new Image;
img.src = reader.result;
};
reader.onloadend = function() {
fileWidth = img.width;
};
reader.readAsDataURL($('#submission-file')[0].files[0]);
console.log(fileWidth);
答案 0 :(得分:1)
您在异步回调中设置fileWidth
,此方法无法保证在您访问变量之前执行。
尝试在访问变量之前在回调和警报中添加警报。查看首先显示的警报。