💡 AnyPublisher VS Observable
⭐️ Publisher
struct AnyPublisher: Publisher {
...
}
⭐️ Observable
class Observable: ObservableType {
...
}
💡 Combine Operators
⭐️ map
func map<T>(_ transform: (Output) -> T) -> Just<T>
⭐️ tryMap
func tryMap<T>(_ transform: (Output) throws -> T) -> Result<T, Error>.publisher
이 외에도 Combine에는 RxSwift에 없는 try***
형태의 Operator들이 존재한다. 이는 Result 타입을 사용해서 에러처리 별도로 핸들링 할 수 있게 해준다.
그리고 merge, combineLatest, zip 연산자의 메소드 이름이 묶을 수 있는 Publisher의 갯수에 따라 메소드 이름 뒤에 숫자가 붙어 있다.
💡 Combine과 RxSwift에서의 Subject
⭐️ Combine
⭐️ RxSwift
💡 Cancellable vs Disposable
⭐️ Cancellable
var cancellables = Set<AnyCancellable>()
Just(1)
.sink { number in
print(number)
}
.store(in: &cancellables)
⭐️ Disposable
var disposeBag = DisposeBag()
Observable.just(1)
.subscribe(onNext: { number in
print(number)
})
.disposeBag(by: disposeBag)