Beispiel:Asynchronous Laden von Daten in Klassenkonstruktors
var readBackend = function(){
var deferred = q.defer();
readData().then(function(data) {
deferred.resolve(data);
})
return deferred.promise;
}
class Test {
constructor(){
readBackend().then(function(data) {
this.importantData = data;
})
}
someFunc() {
//iterate over important data, but important data is defined
//promise didnt resolved yet
}
}
var test = new Test();
test.someFunc(); //throws exception!
Gibt es eine Möglichkeit, um sicherzustellen, dass die Objekteigenschaften durch Konstruktor initiiert werden, wenn ich someFunc
nennen?
Der einzige Weg, die mir in den Sinn kommt init
Funktion schafft, das Versprechen zurück, aber dann, jedes Mal wenn ich meine Klasse zu verwenden, würde ich auf init-Funktion verlassen richtig
[Laden Sie keine asynchronen Daten in Ihren Konstruktor] (http://stackoverflow.com/q/24398699/1048572). – Bergi