<aside> 💡 RxSwift 복습하고 MVVM 쓱 훑어보기 2023.12.05.

</aside>

RxSwift 개념 잡기

비동기 결과값 처리하기

비동기 처리를 위해 completion을 쓰면 코드가 너무 길어지고.. 리턴값으로 간단하게 이를 표현할 수 없을까?

class 나중에생기는데이터<T> {
		private let task: (@escaping (T) -> Void) -> Void

		init(task: @escaping (@escaping (T) -> Void) -> Void) {
				self.task = task
		}

		// PromiseKit에서의 then 역할
		// RxSwift에서의 subscribe 역할
		func 나중에오면(_ f: @escaping (T) -> Void) {
				task(f)
		}
}

나중에 생기는 결과값 Observable로 처리하기

이를 RxSwift로 바꿔보자

class Observable<T> {
		private let task: (@escaping (T) -> Void) -> Void

		init(task: @escaping (@escaping (T) -> Void) -> Void) {
				self.task = task
		}

		func subscribe(_ f: @escaping (T) -> Void) {
				task(f)
		}
}

즉, 아래의 두 방법을 아는 것이 RxSwift의 핵심

  1. 비동기로 생기는 데이터를 Observable로 감싸서 리턴하는 방법
  2. Observable로 오는 데이터를 받아서 처리하는 방법

취소되었을 때 해야 하는 행동