Javascript HTMLIMAGELEMEN.src在哪里为HTMLIMAGELEMEN处理?

Javascript HTMLIMAGELEMEN.src在哪里为HTMLIMAGELEMEN处理?,javascript,html,angularjs,promise,Javascript,Html,Angularjs,Promise,考虑以下代码,该代码检测图像src在角度上是否有效 isImage: function(src) { var deferred = $q.defer(); var image = new Image(); image.onerror = function(data) { console.log(data, "error"); deferred.resolve([false, src]);

考虑以下代码,该代码检测图像src在角度上是否有效

    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")})
如果我运行上面的代码,我的控制台就会打印出来

success
两次

但是

是打印1次吗

好像在某个地方有一个变更处理程序在监视这个属性

我的问题是
.src
的更改处理程序在哪里,为什么
只解决一次

我的问题是
.src
的更改处理程序在哪里

javascript
在问题集
onerror
onload
属性的处理程序设置两次,调用
onerror
onload
事件处理程序两次

为什么是这样?那就只解决一次

承诺最多只能解决或拒绝一次
.then()一旦链接到
Promise
对象,就会被调用

我的问题是
.src
的更改处理程序在哪里

javascript
在问题集
onerror
onload
属性的处理程序设置两次,调用
onerror
onload
事件处理程序两次

为什么是这样?那就只解决一次


承诺最多只能解决或拒绝一次
.then()
一旦链接到
Promise
对象,就会被调用。

但它在哪里检测到
src
正在更改?@Jal At
load
error
事件。“如果在尝试加载或渲染图像时发生错误,并且已配置onerror事件处理程序来处理该事件,则将调用该事件处理程序。”另请参阅事件。但它在何处检测到
src
正在更改?@Jal At
load
error
事件。“如果尝试加载或呈现图像时发生错误,并且已配置onerror事件处理程序来处理该事件,则将调用该事件处理程序。”另请参阅事件处理程序。
return