У меня есть класс ES6, который имеет отложенный объект как переменную экземпляра. Я пытаюсь получить доступ к this
объект внутри angularjs обещание, подобное следующему, но this
не определен, согласно Бабеля:Доступ к этому объекту в ES6 внутри обещания
class MyClass {
constructor($q) {
this.deferred_ = $q.defer();
}
myMethod() {
this.deferred_.promise.then(data => {
console.log(this);
});
}
}
Как-то я думаю, что я должен использовать две функции со стрелками, чтобы связать this
с областью обещания, но я не могу понять, как это сделать. Любая идея, как это сделать?
В этом коде 'this' наверняка будет ссылаться на экземпляр' MyClass'. – zerkms
Это не так. Я думаю, нотация .promise крадет это из класса. Я не слишком уверен, почему это не работает. – mohi666
Ну, ** он делает ** 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% 20constructor (% 24Q)% 20% 7B% 0D% 0A% 20% 20% 20% 20% 20this.deferred_% 3D% 20% 24q.defer()% 3B% 0D % 0A% 20% 20% 7D% 0D% 0A% 0D% 0A% 20% 20myMethod()% 20% 7B% 0D% 0A% 20% 20% 20% 20this.deferred_.promise.then (данные% 20% 3D % 3E% 20% 7B% 0D% 0A% 20% 20% 20% 20% 20% 20console.log (это)% 3B% 0D% 0A% 20% 20% 20% 20% 7D)% 3B% 0D% 0A % 20% 20% 7D% 0D% 0A% 7D Просьба привести пример, демонстрирующий вашу проблему, ваш опубликованный код в порядке. – zerkms