注册
iOS

iOS RXSwift 5.15

timer

创建一个 Observable 在一段延时后,产生唯一的一个元素

timer 操作符将创建一个 Observable,它在经过设定的一段时间后,产生唯一的一个元素。

这里存在其他版本的 timer 操作符。


timer

创建一个 Observable 在一段延时后,每隔一段时间产生一个元素

public static func timer(
_ dueTime: RxTimeInterval, // 初始延时
period: RxTimeInterval?, // 时间间隔
scheduler: SchedulerType
)
-> Observable<E>

timeout

如果源 Observable 在规定时间内没有发出任何元素,就产生一个超时的 error 事件

如果 Observable 在一段时间内没有产生元素,timeout 操作符将使它发出一个 error 事件。


takeWhile

镜像一个 Observable 直到某个元素的判定为 false

takeWhile 操作符将镜像源 Observable 直到某个元素的判定为 false。此时,这个镜像的 Observable 将立即终止。


演示

let disposeBag = DisposeBag()

Observable.of(1, 2, 3, 4, 3, 2, 1)
.takeWhile { $0 < 4 }
.subscribe(onNext: { print($0) })
.disposed(by: disposeBag)

输出结果:

1
2
3

takeUntil

忽略掉在第二个 Observable 产生事件后发出的那部分元素

takeUntil 操作符将镜像源 Observable,它同时观测第二个 Observable。一旦第二个 Observable 发出一个元素或者产生一个终止事件,那个镜像的 Observable 将立即终止。


演示

let disposeBag = DisposeBag()

let sourceSequence = PublishSubject<String>()
let referenceSequence = PublishSubject<String>()

sourceSequence
.takeUntil(referenceSequence)
.subscribe { print($0) }
.disposed(by: disposeBag)

sourceSequence.onNext("🐱")
sourceSequence.onNext("🐰")
sourceSequence.onNext("🐶")

referenceSequence.onNext("🔴")

sourceSequence.onNext("🐸")
sourceSequence.onNext("🐷")
sourceSequence.onNext("🐵")

输出结果:

next(🐱)
next(🐰)
next(🐶)
completed

0 个评论

要回复文章请先登录注册