From 042e30e62e855592c9c6e68b226e0ede17805c55 Mon Sep 17 00:00:00 2001 From: Taewoo Kim Date: Thu, 12 May 2022 16:51:30 +0900 Subject: [PATCH] =?UTF-8?q?5=EC=A3=BC=EC=B0=A8=20=EA=B3=BC=EC=A0=9C=20-=20?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EB=B0=9C=ED=96=89=20/=20?= =?UTF-8?q?=EA=B5=AC=EB=8F=85=20/=20Scheduler=20=EC=A0=81=EC=9A=A9=20?= =?UTF-8?q?=ED=95=B4=EB=B3=B4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RxStudy/RxStudy/ViewController.swift | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/Homework/Taewoo/RxStudy/RxStudy/ViewController.swift b/Homework/Taewoo/RxStudy/RxStudy/ViewController.swift index 832973b..96e5899 100644 --- a/Homework/Taewoo/RxStudy/RxStudy/ViewController.swift +++ b/Homework/Taewoo/RxStudy/RxStudy/ViewController.swift @@ -7,6 +7,7 @@ import UIKit import RxSwift +import RxCocoa class ViewController: UIViewController { static var progressSubject = Subject() @@ -17,6 +18,10 @@ class ViewController: UIViewController { disposeBag = DisposeBag() justExample() + observableExample() + singleExample() + maybeExample() + completableExample() } func justExample() { @@ -49,5 +54,65 @@ class ViewController: UIViewController { }) .disposed(by: disposeBag) } + + func observableExample() { + Observable.just(15) + .observe(on: MainScheduler.instance) + .subscribe(on: OperationQueueScheduler(operationQueue: .main)) + .subscribe { i in + print("onNext", i) + print(Thread.isMainThread) + } onDisposed: { + print("onDisposed") + } + .disposed(by: disposeBag) + } + + func singleExample() { + Single.create { single in + single(.success(3)) + return Disposables.create() + } + .observe(on: MainScheduler.instance) + .subscribe(on: ConcurrentDispatchQueueScheduler(qos: .background)) + .subscribe{ + switch $0 { + case .success(let int): + print(int) + case .failure(let err): + print(err) + } + } + .disposed(by: disposeBag) + } + + func maybeExample() { + Maybe.just("Maybe") + .observe(on: CurrentThreadScheduler.instance) + .subscribe(on: SerialDispatchQueueScheduler(qos: .default)) + .subscribe { str in + print(str) + } onDisposed: { + print("onMaybeDisposed") + } + .disposed(by: disposeBag) + } + + func completableExample() { + Completable.create { completable in + completable(.completed) + return Disposables.create() + } + .observe(on: MainScheduler.instance) + .subscribe(on: SerialDispatchQueueScheduler(qos: .default)) + .subscribe { + print("success") + } onError: { err in + print(err) + } onDisposed: { + print("onCompletableDisposed") + } + .disposed(by: disposeBag) + } }