承诺Angular2中的空对象

时间:2016-12-09 18:39:11

标签: angular firebase firebase-realtime-database ionic2

我正在开发一款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类的任何对象/属性。为什么呢?

1 个答案:

答案 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});

})