2016-10-22 54 views
1

我有一个处理用户认证的服务。从数据库获取用户详细信息的auth服务。Ionic项目中的处理承诺

getUser(){ 
    return this.storage.get('user').then((user) => { 
    if (user){ 
     this.user = user; 
     return user 
    } 
} 

而且在我得到了用户喜欢的成分,

public user ; 
    ionViewDidLoad() { 
    this.auth.getUser().then((user) => { 
     this.user = user; 
    }) 
    .catch((err) => console.log(err)); 
    } 

而在HTML页面中我有{{ user.uid }}其中uid是user对象的属性。但我在控制台中出现错误,

Unhandled Promise rejection: Error in ./Home class Home - inline template:9:21 caused by: self.context.user is undefined ; 

Zone: <root> ; Task: Promise.then ; Value: Object { _nativeError: Error, originalError: TypeError, context: Object, stack: "" } anonymous/[email protected]:153:7 

只有在承诺解决后才解析用户对象。用户没有定义,直到那时。我该如何解决这个问题。我不想用承诺退货async,因为我想处理error捕捉组件。

回答

1

可以使用猫王操作在您看来,这样如果user属性仍然为空,角不会尝试访问uid属性。

{{ user?.uid }}

+1

感谢的人。这有帮助。如果有关于此的一些文档会更好。 – raj

+0

很高兴我能帮忙:) – sebaferreras