+
95
-

回答

如果不想用promise,可以使用timeout定时器,代码如下:

<script type="text/javascript">
function testImage(url, callback, timeout) {
timeout = timeout || 5000;
var timedOut = false, timer;
var img = new Image();
img.onerror = img.onabort = function() {
if (!timedOut) {
clearTimeout(timer);
callback(url, "error");
}
};
img.onload = function() {
if (!timedOut) {
clearTimeout(timer);
callback(url, "success");
}
};
img.src = url;
timer = setTimeout(function() {
timedOut = true;
// reset .src to invalid URL so it stops previous
// loading, but doesn't trigger new load
img.src = "//!!!!/test.jpg";
callback(url, "timeout");
}, timeout);
}

testImage("//repo.bfw.wiki/bfwrepo/image/5d6539385ad28.png",function(url,data){alert(data);})
</script>


网友回复

我知道答案,我要回答