JavaScript将值设置为父函数中定义的变量

时间:2013-11-20 06:27:57

标签: javascript

我想返回imageSize但它返回undefined。我很困惑,我尝试了很多东西。在警报中我正在变大。

getImageSize : function(file) {
        var reader = new FileReader();
        var image  = new Image();
        var imageSize;
        reader.readAsDataURL(file);  
        reader.onload = function(_file) {
            image.src    = _file.target.result;
            image.onload = function() {
                imageSize = ~~(file.size/1024) +'KB';
                alert(imageSize);
            };     
        };
        return imageSize;
    }

1 个答案:

答案 0 :(得分:1)

由于您是异步加载图像,因此无法直接返回大小。您可以做的最好的事情是传入一个回调函数,以便在大小可用时调用:

getImageSize : function(file, callback) {
    var reader = new FileReader();
    var image  = new Image();
    var imageSize;
    reader.readAsDataURL(file);  
    reader.onload = function(_file) {
        image.src    = _file.target.result;
        image.onload = function() {
            imageSize = ~~(file.size/1024) +'KB';
            callback(imageSize);
        };     
    };
}