Object-Methode mit ES6 / Bluebird verspricht
Ich benutzenode v0.11.14-nightly-20140819-pre unter Windows mitharmony
Flagge
Ich habe ein JavaScript-Objekt mit zwei in seinem Prototyp definierten Methoden:
function User (args) {
this.service= new Service(args);
}
User.prototype.method2 = function (response) {
console.log(this); // <= UNDEFINED!!!!
};
User.prototype.method1 = function () {
.............
this.service.serviceMethod(args)
.then(this.method2)
.catch(onRejected);
};
function onRejected(val) {
console.log(val);
}
serviceMethod
vonService
Objekt gibt ein Versprechen zurück.
Wenn ich benutzeUser
Objekt wie unten:
let user = new User(args);
user.method1();
this
immethod2
von ObjektUser
endetundefined
bei Aufruf vonthen
sobald das Versprechen erfüllt ist.
Ich habe versucht, beide ES6 und Bluebird Umsetzung versprechen.
Warumthis
endet alsundefined
in diesem Fall