RxSwift<3>—— Observable序列的创建方式

序列,观察者,调度者,销毁者是RxSwift几个要素,今天说说序列的创建
1.empty
首先来一个空序列,本来序列事件是Int类型,这里调用empyt,则没有序列,只有complete

 let emptyOb = Observable<Int>.empty()
        _ = emptyOb.subscribe(onNext: { (number) in
            print("订阅:",number)
        }, onError: { (error) in
            print("error:",error)
        }, onCompleted: {
            print("完成回调")
        }) {
            print("释放回调")
        }
流程简洁.png

2.just

  • 单个信号序列创建
  • 通过传入默认值初始化,构建只有一个元素的Observable,订阅完成自动completed
 let array = ["A","B","C"]
        Observable<String>.just(array)
            .subscribe{(event) in
                print(event)
        }.disposed(by:disposeBag)
        
        _ = Observable<String>.just(array)
            .subscribe(onNext:{(number) in
                print(number)
        },onError: {(error) in
            print(error)
        },onCompleted: {
   
        }) {
            print("释放完成")
        }

11.png

3.of

  • 创建一个新的可观察序列,该实例具有可变数量的元素
  • 该方法可接受可变数量的参数
// 多个元素 - 针对序列处理
Observable<String>.of("A","B")
    .subscribe { (event) in
        print(event)
    }.disposed(by: disposeBag)

// 字典
Observable<[String: Any]>.of(["name":"JIM","age":18])
    .subscribe { (event) in
        print(event)
    }.disposed(by: disposeBag)

// 数组
Observable<[String]>.of(["lucy","lily"])
    .subscribe { (event) in
        print(event)
    }.disposed(by: disposeBag)
22.png
  • 无论字典,数组,多个元素都是正常使用
    4.from

    • 将可选序列转换为可观察序列。
    • 从集合中获取序列:数组,集合,set 获取序列 - 有可选项处理 - 更安全
Observable<[String]>.from(optional: ["nice","good"])
    .subscribe { (event) in
        print(event)
    }.disposed(by: disposeBag)
33.png
- self._optional = optional底层初始化可选项保存
- 订阅流程判断是否匹配我们的可选项
- 发送observer.on(.next(element))序列
- 随即自动observer.on(.completed)完成序列发送
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容