RxJS — (take、takeLast、takeWhile、takeUntil)

碎碎念:知识点梳理归纳,如果有什么不对的感谢大家指正一起学习!

  • 版本为6

  • ① take
  • ② takeLast
  • ③ takeWhile
  • ④ takeUntil

① take

  • 从上游Observable"拿"数据,那够了就完结
  • take只有一个count参数,限定拿上游数据数量

例:
在这里插入图片描述


② takeLast

  • 只发出源 Observable 最后发出的的N个值 (N = count)
  • 相当于一个可以获取多个数据的last,并且是一次性发出所有数据
  • 函数签名: takeWhile(predicate: function(value, index): boolean): Observable

例1:一个完结流的最后一个数据
在这里插入图片描述


③ takeWhile

  • 发出在源 Observable 中满足 predicate 函数的每个值,并且一旦出现不满足 predicate 的值就立即完成
  • 只要当通过给定的条件时才接收源 Observable 的值。 当第一个不满足条件的值出现时(提供的表达式结果为 false),它便完成

例1:只保留小于3的值
在这里插入图片描述
例2:第一个就不满足条件被完结
在这里插入图片描述


④ takeUntil

  • 它发出源 Observable 的值,然后直到第二个 Observable (即 notifier )发出项,它便完成

例1:在第5s第二个Observble开始发出值的时候第一个Observable终结
在这里插入图片描述