程序员

Swift - RxSwift的使用详解20(调度器、subsc

2018-03-20  本文已影响1441人  八级大狂风AM

二十、调度器(Schedulers)

1,基本介绍

(1)调度器(Schedulers)是 RxSwift 实现多线程的核心模块,它主要用于控制任务在哪个线程或队列运行。

(2)RxSwift 内置了如下几种 Scheduler

2,使用样例

        这里以请求网络数据并显示为例。我们在后台发起网络请求,然后解析数据,最后在主线程刷新页面。

过去我们使用 GCD 来实现,代码大概是这样的:

//现在后台获取数据
DispatchQueue.global(qos: .userInitiated).async {
    let data = try? Data(contentsOf: url)
    //再到主线程显示结果
    DispatchQueue.main.async {
        self.data = data
    }
}

如果使用 RxSwift 来实现,代码大概是这样的:

let rxData: Observable<Data> = ...
 
rxData
    .subscribeOn(ConcurrentDispatchQueueScheduler(qos: .userInitiated)) //后台构建序列
    .observeOn(MainScheduler.instance)  //主线程监听并处理序列结果
    .subscribe(onNext: { [weak self] data in
        self?.data = data
    })
    .disposed(by: disposeBag)

3,subscribeOn 与 observeOn 区别

(1)subscribeOn()

(2)observeOn()

RxSwift使用详解系列
原文出自:www.hangge.com转载请保留原文链接

上一篇 下一篇

猜你喜欢

热点阅读