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