Angular-如何将这两个可观察性与ngrx一些魔法合并



我有两个可观察性。一个返回事件,另一个返回布尔值。我想创建一个新的可观察对象,在存储中的值为true时返回布尔值或事件。这是代码。这个obs1应该等待直到obs2返回true。

const obs1 = fromEvent(window,'beforeunload')
const obs2 = this.store.select(aBooleanObservable)
const result: Observable<boolean>= ???

senario 1=触发事件,存储中的值true=>result true
senario 2=事件已触发,存储中的值false=>结果记录发射,直到该值转换为真正的

const obs1 = fromEvent(window,'beforeunload')
const obs2 = this.store.select(aBooleanObservable)
const result: Observable<boolean>=  combineLatest(obs1, obs2).pipe(
filter((event, obvBoolean) => event && obvBoolean));

我不确定这是否有效,下面的答案假设obs1只触发一次。你可以试试

const obs1 = fromEvent(window,'beforeunload')
const obs2 = this.store.select(aBooleanObservable)
const result: Observable<boolean>=  obs1
.pipe(
switchMap(()=> obs2 ),
filter((aBooleanObservableRes)=>aBooleanObservableRes)

)

只有当obs2具有"0"时,才会返回您的结果;真";布尔值。

最新更新