【发布时间】:2015-08-25 22:46:19
【问题描述】:
我这里有一个布尔函数,叫做 checkURL,它检查图片是否有 100 x 100 像素。如果是,则返回 true。函数内部有一个异步调用来检查图像的大小。
function checkURL(url, callback) {
var valid;
var img = new Image();
img.src = url;
img.onload = function (callback) {
valid = callback(img.width, img.height);
};
console.log(valid);
return valid;
}
function nextStep(w, h) {
if (w == 100 && h == 100) {
return true;
} else {
return false;
}
}
var pic_valid = checkURL(a_url, nextStep);
我收到错误:
回调未定义
在 checkURL 函数中。我还担心 checkURL 中的变量 valid 最终会无效。
附加编辑:如果我添加 console.log(valid);在返回有效之前我得到未定义。这是预期的吗?
【问题讨论】:
-
所有依赖于响应的代码都需要在(或至少源自)回调中。这就是为什么首先会有回调。
-
您的错误信息没有意义。你使用的是什么浏览器?我希望它会说类似 "callback is not a function"