【发布时间】:2023-03-11 02:48:01
【问题描述】:
考虑以下检测图像 src 在 angular 中是否有效的代码
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 只解析一次?
【问题讨论】:
标签: javascript html angularjs promise