我如何获得状态的最后值?无需订阅 (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次
我在立面上有这个
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次