Apple純正のCombineが出たと聞いたので乗り換えてみた
・RxSwiftでSingle
Single<AAA>.create { emitter in
let url = hogehoge
AFManager.request(url, method: .get).responseData(completionHandler: { [weak self] response in
emitter(.success(response))
})
return Disposables.create()
}
・CombineでFuture
Future<AAA, Error> { promise in
let url = hogehoge
AFManager.request(url, method: .get).responseData(completionHandler: { [weak self] response in
promise(.success(response))
})
}
・RxSWfitで購読
private let disposeBag = DisposeBag()
.request()
.observe(on: MainScheduler.instance)
.subscribe { it in
}
.disposed(by: disposeBag)
・Combineで購読
private var cancellables: [AnyCancellable] = []
request()
.sink(receiveCompletion: { [weak self] completion in
}){ [weak self] it in
}.store(in: &cancellables)