Ich habe diese Klasse:Eine Methode aufrufen, wenn alle Deferred abgeschlossen sind?
(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));
Die Klasse wird in einer Schleife aufgerufen:
var self = this;
$.each(files, function(index, file){
self.fileRead.read(file).done(function(fileB64){self.fileShow(file, fileB64, fileTemplate);});
});
Meine Frage ist, gibt es eine Möglichkeit, eine Methode aufrufen, sobald die Schleife und self.fileRead
abgeschlossen ist zurückgekehrt es ist für alles in der Schleife aufgeschoben?
Ich möchte es die Methode aufrufen, auch wenn eine oder mehrere der zurückgestellten fehlschlägt.
Ist das nicht was '.always()' für ist? – DevlshOne
Sie sollten eine bessere Versprechen Bibliothek verwenden. –
Verwendet '.read' intern irgendwelche Methoden für das Objekt? Gibt es einen Grund, dass es sich um eine Instanzmethode handelt? –