为HTMLImageElemen处理HTMLImageElemen.src的位置在哪里?

时间:2017-05-19 01:07:39

标签: 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]);
        };
        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

2次

但是

return

打印1次

似乎某个地方有一个变更处理程序在看房子?

我的问题是.src居住的变更处理程序在哪里,为什么.then只解析一次?

1 个答案:

答案 0 :(得分:0)

  

我的问题是.src居住的

的变更处理程序在哪里

javascript在问题集onerroronload处理<img>元素。 .src的{​​{1}}属性设置为两次,调用<img>onerror事件处理程序两次。

  

为什么.then只解决一次?

onload最多可以解决或拒绝一次。一旦链接到Promise对象,就会调用.then()