gpt4 book ai didi

rxjs - 使用内部可观察谓词的管道过滤器

转载 作者:行者123 更新时间:2023-12-04 15:45:25 25 4
gpt4 key购买 nike

我正在努力了解 RxJS。特别是我有一种情况,我试图通过一个过滤器从外部可观察到的排放物传输管道,该过滤器具有一个内部可观察谓词,该谓词取决于外部可观察到的输出。举个例子:

outerObs.pipe(
filter(x => myPredicate(x))
).subcribe()

哪里mypredicate是一个返回 Observable<boolean> 的函数.显然以上内容不适用于 filter运算符(operator)期望 boolean而不是 Observable<boolean> .有没有一个很好的管道方式来做到这一点?我试过查看 withLatestFrommergeMap运算符(operator),但似乎没有任何效果。

最佳答案

您需要使用 *Map 运算符之一:mergeMapexhaustMapswitchMapconcatMap

下面是一个 concatMap 的例子,它将保证发射的初始顺序:

outerObs.pipe(
concatMap(x => myPredicate(x).pipe(
filter(subx => subx == true), // filter by sub value
mapTo(x) // map sub value back to outer value
))
).subcribe()

看到这个 mergeMap vs exhaustMap vs switchMap vs concatMap 比较以选择正确的。

希望对你有帮助

关于rxjs - 使用内部可观察谓词的管道过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55970857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com