У меня есть следующий код:Используя это обещание обратного вызова
private resetPassword() {
this.auth.subscribe(auth => {
this.firebaseRef.auth().sendPasswordResetEmail(auth.auth.email).then(
success => {
this.successMessage = 'A password reset email was sent to ' + auth.auth.email + '. Please follow' +
'the instructions in the email to reset your password.';
},
error => {
console.log(error);
}
)
});
}
Проблема, что у меня есть, что this.successMessage
не установлен на успех. Я могу поставить console.log
там, и он работает, но кажется, что я не могу ссылаться на this
в этой области. Я пробовал использовать .bind(this)
везде, где мог, но это не помогло. Есть предположения?
Обратите внимание, что это приложение Angular2, и successMessage
отображается в шаблоне, так что я знаю, что он не работает. Я подтвердил, что если я установил сообщение за пределами then
, он будет работать правильно.
«Вопрос, который я имею, что this.successMessage не установлен на успех» - Как вы можете сказать? Ваш код никогда не пытается прочитать значение обратно. Вам нужно убедиться, что ваш [mcve] * завершен *. – Quentin
Это приложение Angular2, которое отображает 'successMessage' в шаблоне, и этого не происходит. И да, я убедился, что если я установил сообщение за пределами 'then', он будет работать правильно. Я обновлю свое оригинальное сообщение этой информацией. –
@EvanSalter может быть просто из-за того, что ваше угловое приложение не обновляется после действия async, а не значения, которое не задано? Выполняет ли 'console.log (this)' print 'undefined' или показывает, что на самом деле задано значение successMessage? – m0meni