簡體   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