我如何获得状态的最后值?无需订阅 (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
        }
  });
    

如何在不订阅的情况下获取状态?

一种方法是将 Observable 转换为 Promise 并使用 async-await:

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

注意: 这种方法违背了 Observables 的目的,因为您将无法监听发出的变化。 Promise 要么 resolve/reject 只有一次。

 constructor(private storeState: State<YourState>)

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

如果只需要取值1次