JavaScript:从异步onload回调返回

时间:2015-05-20 10:09:39

标签: javascript asynchronous callback onload asynccallback

我正在修复现有代码,以便在上传之前检查图片最小尺寸。由于新的Image(),我现在正在获得适当大小的图像,但我无法返回结果!这是代码:

_hasError: function (file) {
       if (file.error) {
            return file.error;
        }

        if (this.options.minWidth > 0 && this.options.minHeight > 0) {
            var checkSizeUpload = function(minWidth, minHeight) {
                if (this.width < minWidth || this.height < minHeight) {
                    return "Image too small";
                }
            };

            var tmpImg = new Image();
            tmpImg.src = URL.createObjectURL(file);
            tmpImg.onload = checkSizeUpload.bind(tmpImg, this.options.minWidth, this.options.minHeight);
        }

        ...

     return null;
}

如您所见,该方法旨在返回null或错误消息。 麻烦的是,因为onload回调是异步的,所以当我知道图像的实际大小后,我找不到返回错误消息的方法。

从我看到的情况来看,我可能不得不添加另一个回调,但我看不出这会有什么帮助,因为如果我从它返回,它将不会返回所需的范围。

我该如何解决这个问题?谢谢你的帮助!

0 个答案:

没有答案