繁体   English   中英

如何从订阅模块功能角度7返回数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM