Ich habe eine ES6-Klasse, die ein zurückgestelltes Objekt als Instanzvariable hat. Ich versuche, das this
Objekt innerhalb eines AngularJS Versprechen, ähnlich dem folgenden zugreifen, aber this
ist nicht definiert, nach babel:Zugriff auf dieses Objekt in ES6 in einem Versprechen
class MyClass {
constructor($q) {
this.deferred_ = $q.defer();
}
myMethod() {
this.deferred_.promise.then(data => {
console.log(this);
});
}
}
Irgendwie glaube ich, zwei Pfeil-Funktionen verwenden sollten this
auf den Umfang zu binden Versprechen, aber ich kann nicht herausfinden, wie. Irgendeine Idee, wie man das macht?
In diesem Code würde "this" sicher auf die Instanz von 'MyClass' verweisen. – zerkms
Es tut es nicht. Ich denke, die .Promise-Notation stiehlt das aus dem Klassenumfang. Ich bin mir nicht sicher, warum es nicht funktioniert. – mohi666
Nun, ** tut es ** https://babeljs.io/repl/#?evaluate=true&lineWrap=false&presets=es2015%2Creact%2Cstage-2&experimental=true&loose=false&spec=true&playground=true&code=class%20MyClass%20%7B % 0D% 0A% 0D% 0A% 20% 20Konstruktor (% 24q)% 20% 7B% 0D% 0A% 20% 20% 20% 20Disferred_% 20% 3D% 20% 24qDefer()% 3B% 0D % 0A% 20% 20% 7D% 0D% 0A% 0D% 0A% 20% 20myMethod()% 20% 7B% 0D% 0A% 20% 20% 20% 20this.defertiger_.Promise.then (Daten% 20% 3D % 3E% 20% 7B% 0D% 0A% 20% 20% 20% 20% 20% 20console.log (dies)% 3B% 0D% 0A% 20% 20% 20% 20% 7D)% 3B% 0D% 0A % 20% 20% 7D% 0D% 0A% 7D Bitte geben Sie ein Beispiel an, das Ihr Problem veranschaulicht, Ihr gebuchter Code ist in Ordnung. – zerkms