我有很长的图片列表,我想检查每个图像(如果损坏,它应该返回false;否则,返回true)
我写了这段代码但是检查网址的功能总是给我错误的结果
...
validImages=[];
this.list.forEach(item=>{
if(checkImage(item.url)){
validImages.push(item);
}
});
...
checkImage(url){
let image = new Image();
image.src = url;
console.log(image.onerror);
if(image.onerror){return false;}else{return true;}
}
提示:我可以找到这两个陈述。它工作但我无法在我的函数中运行它们来返回true / false值
image.onerror = function (evt){alert("can't download")};
image.onload = function (evt){alert("can be download")};
那么对这个问题有什么帮助吗?
修改
这是我的新代码
...
validImages=[];
this.list.forEach(item=>{
this.imageExists(item.img, function(exists){
if(exists){ // exists get correct true/false values
validImages.push(item); //push function not works
}
});
});
checkImage(url, callback){
let image = new Image();
image.src = url;
image.onerror = function (evt){callback(false);};
image.onload = function (evt){callback(true);};
}