withLatestFrom
помещает значение из предоставленного Observable
в массив, который вы разрушаете с помощью map
. Если store.dispatch
в ngxs возвращает хранилище Observable
, вы хотите:
this.layouts$ = this.store.dispatch([
new LoadCustomerProducts(),
]).pipe(
withLatestFrom(this.customerProducts$),
map(([store, customerProducts]) => {
console.log('CP!!!', customerProducts);
return this.loadLayouts(customerProducts);
})
);
См .: https://rxjs.dev/api/operators/withLatestFrom
Стоит отметить, что withLatestFrom
не будет ждать, пока издаст customerProducts$
. Вместо этого, когда вы подписываетесь на layouts$
, вы немедленно получите текущее состояние, но, поскольку customerProducts$
еще не излучил, layout$
не будет излучать.
https://stackblitz.com/edit/rxjs-efmtxp