RXJS我该选用哪个操作符之-实例操作符篇

RXJS比较强大,操作符众多,想熟悉需要比较长时间的运用,所以大部分新手都比较疑惑应该使用哪些操作符去实现自己的数据流的操作。

更多详情请翻阅 RXJS中文翻译文档

我该选用哪个操作符? - 实例操作符

使用此页面通过类型查找Observable 适合您需要的实例运算符:

实例操作符
使用现有的序列 我想改变每个值 map/select
我想从每个值拉一个属性 pluck
我想在不影响值的情况下被通知值 do/tap
doOnNext/tapOnNext
doOnError/tapOnError
doOnCompleted/tapOnCompleted
我想包含值 基于自定义逻辑 filter/where
从序列开头 take
基于自定义逻辑 takeWhile
从序列的末尾 takeLast
直到另一个序列发射一个值或完成 takeUntil
我想忽略值 全部 ignoreElements
从序列的开头 skip
基于自定义逻辑 skipWhile
从序列的末尾 skipLast
直到另一个序列发出一个值 skipUntil
与以前的值相同 distinctUntilChanged
这(触发)太频繁 throttle
我想计算 总和 这些值的 sum
平均值 average
使用自定义逻辑 并且只输出最终值 aggregate
reduce
并在计算出值时输出(每一步的)值 scan
我想用元数据包装它的消息 描述每个消息 materialize
包括从最后一个价值以来的时间 timeInterval
包括时间戳 timestamp
经过一段时间的不活动 我想抛出一个错误 timeout
我想切换到另一个序列 timeout
我想确保只有一个值 并且如果存在多于或少于一个值则抛出错误 single
并且如果没有值,则使用默认值 singleOrDefault
我只想取第一个值 并且如果没有值,则抛出错误 first
并且如果没有值,则使用默认值 firstOrDefault
在一段时间内 sample
我只想取最后的值 如果没有值,则报错 last
并且如果没有值,则使用默认值 lastOrDefault
我想知道它包含多少值 count
我想知道它是否包含一个指定的值 contains
我想知道条件是否满足 只需要任一值满足 any/some
需要所有值都满足 all/every
我想把消息延迟一段特定的时间 delay
基于自定义逻辑 delayWithSelector
我想给值分组 直到序列完成 toArray
toMap
toSet
使用自定义逻辑 作为数组 buffer
作为序列 window
根据特定大小分批 作为数组 bufferWithCount
作为序列 windowWithCount
基于时间 作为数组 bufferWithTime
作为序列 windowWithTime
基于时间或计数,以先发生者为准 作为数组 bufferWithTimeOrCount
作为序列 windowWithTimeOrCount
基于一个指定的key 直到序列完成 groupBy
并控制每组的生命周期 groupByUntil
我想为每个值开始一个新的序列 并且并行地从所有序列中发出值 flatMap/selectMany
并按顺序从每个序列中输出值 concatMap/selectConcat
并在新值到达时取消先前的序列 flatMapLatest/selectSwitch
并递归地为每个新值启动一个新的序列 expand
并根据onNext,onError和onCompleted并行地从所有序列发出值 flatMapObserver/selectManyObserver
并根据onNext,onError和onCompleted顺序地从所有序列发出值 concatMapObserver/selectConcatObserver
我想把它与另一个结合起来 两者都完成时发出通知 forkJoin
我想执行复杂的操作,而不会打破流畅的调用 let
我想在多个订阅者之间共享订阅 使用特定的subject实现 multicast
publish
share
并向未来订阅者提供最后的值 publishLast
shareLast
并向未来订阅者重播默认值或最新值 publishValue
shareValue
并向未来的订阅者重播n个值 replay
shareReplay
发生错误时 我想重新订阅 retry
我想开始一个新序列 catch
取决于错误 catch
当完成时 我想重新订阅 repeat
我想开始一个新序列 concat
当完成或抛出错误时 我想开始一个新序列 onErrorResumeNext
当完成,抛出错误或退订时 我想执行一个函数 finally
我想改变路由的调度程序 调用subscribe(订阅) subscribeOn
消息 observeOn
使用两个序列 我想决定从哪个接收值 取决于哪个序列先发出值 amb
我想确定它们的值是否相等 sequenceEqual
我想合并它们的值 只有当第一个序列发射时,使用每个序列的最新值 withLatestFrom
为了 不改变时重复使用最新值 combineLatest
每个值只使用一次 zip
重复分享我选择的“生命周期” 并通知每个组合 join
并给每个“左”的序列的值给“右”的序列 groupJoin
我想包含两者的值 merge
0%