我正在开发一款Ionic2应用程序并且我正在使用promises。在Typescript类中,我创建了这个方法
tapOnRegistrati() {
this.authService.userRegistration(this.email,this.password).then(function(user){
this.user = this.af.database.object('/users/' + user.uid);
this.user.set({ name: this.name, lastname: this.lastname});
}).catch(function(error: any) {
});
}
但是当then
块被执行时this
的引用是null
,所以我无法使用我的typescript类的任何对象/属性。为什么呢?
答案 0 :(得分:1)
因为如果你使用像
这样的回调函数.then(function(user){
this.user = this.af.database.object('/users/' + user.uid);
this.user.set({ name: this.name, lastname: this.lastname});
})
this
将引用回调内的函数对象。如果您想参考该页面,请使用:
then((user)=>{
this.user = this.af.database.object('/users/' + user.uid);
this.user.set({ name: this.name, lastname: this.lastname});
})