我对角7还不熟悉,从组件函数返回数据有一个问题。这可能不是问问题的方式,因为我对角7的理解较少。
以下是我的组件功能:
getUserStatus
getUserStatus(){
this.chatService.newUserJoined().subscribe(data=>{
this.statuses = data;
});
return this.statues;
}chatService从服务中获取数据,现在我只想从这个函数返回状态,状态可以是true,也可以是false。我需要从我尝试过的函数返回数据,但它给了我未定义的数据。
发布于 2019-05-14 06:48:34
不能直接从subscribe返回数据
为什么?
由于您的函数正在使用Observable,而Observable是异步的,也就是说,数据不会立即可用,您的函数不会等待数据,并将完成它的执行并返回null,而且它不应该是处理Observable的方法,因为您将函数的同步调用与异步代码混合在一起。
正确的方法是从该函数返回Observable,然后对其调用subscribe。你可以这样做:
getUserStatus() {
return this.chatService.newUserJoined()
}在调用函数中,您可以这样做
getUserStatus().subscribe(data=>{
// work with data returned
});关于可观测这里的更多信息
https://stackoverflow.com/questions/56120966
复制相似问题