给出以下功能:
function check_min_sizing (input, options) {
reader = new FileReader();
reader.onload = function (e) {
img_rsc = e.target.result;
image = new Image();
image.onload = function () {
if (image.width < options.min_width || image.height < options.min_height) {
return false;
} else {
return true;
}
};
image.src = img_rsc;
};
reader.readAsDataURL(input.files[0]);
}
如何让整个函数返回true
或false
?它不能正常工作因为(我相信)函数在onload之前完成执行...
我希望能够做一些像
这样的事情if (check_min_sizing(input, options)) {
// do something successful
} else {
// throw an error
}
答案 0 :(得分:3)
有一些方法可以通过阻止函数直到图像加载来完成这项工作,但这是一件坏事。调用代码应传入一个回调函数,如果你想要一个错误回调,那么调用两个函数。
check_min_sizing(input, options, function(e){
// do something successful
}, function(error){
// throw an error
});
答案 1 :(得分:0)
在异步模型中,AMAIK没有办法等待回调,我认为你的请求(架构)基本上是错误的。无论你想根据true
或false
结果做什么,都应该在你的回调函数中发生。