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

JavaScript set value to variable defined in parent function

本文关键字:定义 变量 函数 设置 JavaScript      更新时间:2023-09-26

我想返回imageSize,但它返回未定义。我很困惑,我试过很多东西。在警报中,我得到了尺寸。

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;
    }

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

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);
        };     
    };
}