Skip to content

skipUntil

跳过操作符,跳过源流的数据推送,直到触发器流解析一次后才开始传递后续的数据。

image

类型定义

typescript
type skipUntil = <T>(trigger$: Stream | Observable) => (observable$: Observable<T>) => Observable<T>

参数说明

  • trigger$: 触发器流或观察者,当它解析时启用数据传递

详情

  • 只有 trigger$ 的 resolve 状态才能启用数据传递,reject 状态会被忽略
  • 一旦启用后,后续所有的源流数据都会正常传递
  • 启用前已经解析的数据不会回溯传递
  • 当下游取消订阅时,会自动清理触发器监听器

示例

基本用法

typescript
import { $, skipUntil } from 'fluth'

const source$ = $()
const trigger$ = $()
const result$ = source$.pipe(skipUntil(trigger$))

result$.then((value) => {
  console.log('传递:', value)
})

// 在触发器启用前推送的数据会被跳过
source$.next(1) // 跳过,不输出
source$.next(2) // 跳过,不输出

// 启用触发器
trigger$.next('go')

// 后续数据正常传递
source$.next(3) // 输出: 传递: 3
source$.next(4) // 输出: 传递: 4