【发布时间】:2014-06-16 13:38:13
【问题描述】:
我有这门课:
(function(){
"use strict";
var FileRead = function() {
this.init();
};
p.read = function(file) {
var fileReader = new FileReader();
var deferred = $.Deferred();
fileReader.onload = function(event) {
deferred.resolve(event.target.result);
};
fileReader.onerror = function() {
deferred.reject(this);
};
fileReader.readAsDataURL(file);
return deferred.promise();
};
lx.FileRead = FileRead;
}(window));
类被循环调用:
var self = this;
$.each(files, function(index, file){
self.fileRead.read(file).done(function(fileB64){self.fileShow(file, fileB64, fileTemplate);});
});
我的问题是,有没有办法在循环完成并且self.fileRead 返回后调用一个方法,它会延迟循环中的所有内容?
即使一个或多个延迟失败,我也希望它调用该方法。
【问题讨论】:
-
这不是
.always()的用途吗? -
你应该使用更好的 promise 库。
-
.read是否在对象内部使用任何方法?有什么理由它是一个实例方法吗?
标签: javascript jquery promise jquery-deferred