美文网首页
RxSwift -- 内置事件发生器

RxSwift -- 内置事件发生器

作者: yww | 来源:发表于2017-09-20 10:41 被阅读6次

RxSwift 内置了很多事件发生器, 所以你并不需要每次都是用 create 创建.

never/ empty/ just/ error

这个很特别, 是用这个工厂方法创建的可观察对象什么都不会发送, 也不会结束

Observable<String>.never().subscribe { (_) in
    print("nerver print")
}.disposed(by: disposeBag)

比如这上面的这个 print 永远不会输出
你也可以自己用写一个 never

Observable<String>.create({ (observer) -> Disposable in
    return Disposables.create()
}).subscribe { (_) in
    print("nerver print")
}.disposed(by: disposeBag)

就像这样, 既没有任何事件, 也没有结束
------->
empty和 never 唯一的不同就是会有一个结束事件, 也不会有任何的 next 事件发出
----|--->
just 会有一个 next 事件发出, 然后就结束.
----1-|-->
error 和 empty 类似, 不过不是结束事件, 而是错误事件, 这个通常用于处理中抛出一个错误
----×--->

of/ from/ range/ repeat/generate

of 则依顺序发送多个事件, 然后再结束
from 和 of 类似, 不过 from 只有一个参数, 参数类型为序列, 内部会自动将序列拆开发送
range 则会生成一个根据起始值和重复次数, 生成一个递增序列
generate 使用一个初始值, 一个判断语句, 以及一个获取下一个值 的方式生成一个序列, 类似于C++的 for( int i = 0; i < 5; i++)

Observable.of(1, 2, 3, 4, 5).subscribe { (event) in
    print(event)
}.disposed(by: disposeBag)
Observable.generate(initialState: 1, condition: {$0 <= 5}, iterate: {$0 + 1})
          .subscribe { (event) in
              self.print(event)
           }.disposed(by: disposeBag)

---1-2-3-4-5-|-->

repeatElement

repeatElement会生成一个无尽的队列, 每次重复发送指定的数据, 一般使用 take 语句取前几个数据, 如

Observable.repeatElement(1).take(3).subscribe { (event) in
   self.print(event)
}.disposed(by: disposeBag)

---1-1-1-|-->

相关文章

  • RxSwift -- 内置事件发生器

    RxSwift 内置了很多事件发生器, 所以你并不需要每次都是用 create 创建. never/ empty/...

  • 面向响应式编程 RP

    RxSwift RxSwift中文解释 RxSwift核心角色 Observable: 负责发送事件(Event)...

  • RxSwift(三)----Operators

    RxSwift(三)----Operators 在RxSwift中,我们需要对observables发出的事件进行...

  • RxSwift的使用(二)

    RxSwift 核心内容 Observable - 产生事件 Observer - 响应事件 Operator -...

  • RxSwift基础讲解

    RxSwift:RxSwift是一个使用可观察序列和函数式操作符编写异步和基于事件的代码的库。RxSwift常用的...

  • RxSwift(一)----Observables

    RxSwift(一)----Observables RxSwift作为异步编程和事件驱动的iOS三方库.在平时的a...

  • RxSwift 核心

     RxSwift的核心内容:image.pngObservable - 产生事件Observer - 相应事件Op...

  • RxSwift 基础使用

    一、 使用 RxSwift 与传统方式对比 1. 按钮添加点击事件 传统方式 使用RxSwift不再需要使用 Ta...

  • RXSwift序列初探

    目录 RXSwift与传统代码的对比。 事件序列的创建。 Observable可监听序列于Subscribe 事件...

  • RxSwift 核心

    这一章主要介绍 RxSwift 的核心内容: Observable - 产生事件 Observer - 响应事件 ...

网友评论

      本文标题:RxSwift -- 内置事件发生器

      本文链接:https://www.haomeiwen.com/subject/ugwbsxtx.html