Betrachten Sie den folgenden Code, wenn das Bild src gültig erkennen ist in WinkelWo wird HTMLImageElemen.src für HTMLImageElemen behandelt?
isImage: function(src) {
var deferred = $q.defer();
var image = new Image();
image.onerror = function(data) {
console.log(data, "error");
deferred.resolve([false, src]);
};
image.onload = function(data) {
console.log(data, "success");
deferred.resolve([true, src]);
};
image.src = "some_valid_image_url"
setTimeout(function() {
image.src = "some_valid_image_url"
}, 5000)
return deferred.promise;
}
isImage("some_valid_image_url").then(function() {console.log("return")})
Wenn ich den Code über meine Konsole laufen
success
2 mal
aber
gedruckt wirdreturn
wird 1 mal gedruckt
Scheint, als ob irgendwo ein Change-Handler die Immobilie beobachtet?
Meine Frage ist, wo ist der Change-Handler für .src
residiert und warum .then
nur einmal auflösen?
Aber wo erkennt man, dass sich 'src' ändert? – Jal
@Jal Bei 'load' und' error' Ereignissen. _ "Wenn beim Versuch, das Image zu laden oder zu rendern, ein Fehler auftritt und ein Event-Handler für das Ereignis onerror konfiguriert wurde, um den [error'] zu behandeln (https://developer.mozilla.org/en-US/docs/Web/ Events/error) Event, dieser Event-Handler wird aufgerufen. "_ Siehe [' '] (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img) – guest271314
Siehe auch [ laden] (https://html.spec.whatwg.org/multipage/indices.html#event-load) Ereignis. – guest271314