[英]How to return data from subscribe module function angular 7
我是 Angular 7 的新手,从组件函数返回数据时出现问题。 这可能不是提问的方式,因为我对 Angular 7 的了解较少。
这是我的组件功能:
获取用户状态
getUserStatus(){
this.chatService.newUserJoined().subscribe(data=>{
this.statuses = data;
});
return this.statues;
}
chatService 从服务中获取数据,现在我只想从此函数返回状态,状态可能是真或假。 我需要从我尝试过的这个函数返回数据,但它给了我未定义的数据。
您不能直接从subscribe
返回数据
为什么?
因为您的函数正在使用Observable
并且Observable
是异步的,即数据不会立即可用,并且您的函数不会等待数据并且将完成其执行并返回null
并且它不应该是处理Observable
的方式,因为您正在混合您的使用异步代码同步调用函数。
正确的方法是从该函数返回Observable
,然后在其上调用subscribe
。 你可以这样做:
getUserStatus() {
return this.chatService.newUserJoined()
}
在你的调用者函数中你可以这样做
getUserStatus().subscribe(data=>{
// work with data returned
});
更多关于 Observables 的信息在这里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.