我是angular 7的新手,从组件函数返回数据存在问题。可能不是问问题的方法,因为我对角度7的了解较少。
这是我的组件函数
getUserStatus
getUserStatus(){
this.chatService.newUserJoined().subscribe(data=>{
this.statuses = data;
});
return this.statues;
}
chatService从服务获取数据,现在我只想从此函数返回状态,可能是状态为true或false。我需要从我尝试过的该函数返回数据,但它给了我未定义的信息。谢谢大家
答案 0 :(得分:2)
您不能直接从subscribe
返回数据
为什么?
因为您的函数正在使用Observable
并且Observable
是异步的,即数据将不会立即可用,并且您的函数将不会等待数据并且将完成其执行并返回null
,它不应成为处理Observable
的方法,因为您将函数的同步调用与异步代码混合在一起。
执行此操作的正确方法是从该函数返回Observable
,然后在其上调用subscribe
。您可以这样做:
getUserStatus() {
return this.chatService.newUserJoined()
}
在调用方函数中,您可以像这样
getUserStatus().subscribe(data=>{
// work with data returned
});
有关可观察物here
的更多信息