我这里有一个名为 checkURL 的 bool 函数,用于检查图片是否具有 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);
我收到错误:
callback is not defined
在 checkURL 函数中。我还担心 checkURL 中有效的变量最终会变得无效。
额外编辑:如果我添加 console.log(valid);在返回有效之前我得到了未定义。这是预期的吗?
最佳答案
您可以在此处定义回调:
function checkURL(url, callback) {
然后你在这里重新定义它:
img.onload = function(callback){
...它掩盖了您实际为其赋值的变量。
不要掩盖它:
img.onload = function(){
关于javascript - JS 异步调用 - 我的回调方法无法检查图像尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30760465/