簡體   English   中英

我如何獲得狀態的最后一個值? 無需訂閱(rxJs)

[英]How i can get last value of state? without subscribing (rxJs)

我在門面上有這個

chatMessagesState$ = this.store.pipe(select(ChatMessageSelectors.getChatMessagesState));
 

這個在選擇器上

export const getChatMessagesState = createSelector(
  getChatMessages,
  (payload: ChatMessagesState) => payload
);

這在組件上

   this.chatMessagesSub = this.chatMessagesFacade.chatMessagesState$.subscribe(state => {
        if (state.messages) {
        // do something
        }
  });
    

我如何在不訂閱的情況下獲得狀態?

 constructor(private storeState: State<YourState>)

 const state = this.storeState.value['your-state'];

如果您只需要取值 1 次

一種方法是將Observable轉換為Promise並使用async-await

async getStateValue(){
    const state=await this.chatMessagesFacade.chatMessagesState$.toPromise();
    return state;
  }

注意:此方法違背了 Observables 的目的,因為您將無法監聽發出的更改。 Promise 只會解決/拒絕一次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM