
화면에서 네트워크 요청 등으로 비동기처리를 해야 하는 경우 공통함수 뼈대를 정리해놓는다.
ruturn type이 바뀐다면 Single<String> 이런식으로 Generic 으로 리턴타입을 명시한다.
화면에서 Observable(?) 하게 가져다 쓸 수 있다.
func returnSingle() -> Single<Void> {
return Single.create { observer in
if true {
observer(.success(Void()))
} else {
observer(.error(CustomedError(message: "Swift Error 객체 → Error프로토콜을 준수함", status: -1)))
}
return Disposables.create {}
}
}
추후에 받는곳에서 이런식으로 받아서 처리!!
subscribe(onNext: {
// observer(.success(type)) 여기로
}, onError: {
// observer(.error(Error object) 여기로
})
observer(.error(Error Object)) 의 Swift Error 객체의 예시 샘플을 정리해놓는다.
추가적으로 내부 API 요청(각 개발 내부 사이트) 에러시 서버에서 내려주는 공통 에러도 이것으로 받을 수 있도록
Codable Protocol 을 통해 커스텀 에러를 공통으로 빼내는 방식도 추후에 정리할 예정이다.
/*
커스텀 에러 모델 예시 Error 상속!
*/
struct CustomedError: Error {
let status: Int
let message: String
var resCode: String?
init(message: String, status: Int, resCode: String? = nil) {
self.message = message
self.status = status
self.resCode = resCode
}
}'iOS_RxSwift' 카테고리의 다른 글
| RxSwift 를 통한 UITableView 사용법에 대한 정리 (0) | 2022.02.01 |
|---|---|
| Subject, Relay 에 대한 활용 및 이해도 정리 (0) | 2022.01.24 |
| RxSwift + ReactorKit 에러 트래킹 Custom 방식에 대한 정리 (0) | 2022.01.14 |
| RxSwift ErrorTracker GitHub 코드 정리 (0) | 2022.01.11 |
| RxSwift ActivityIndicator GitHub 코드 정리 (0) | 2022.01.11 |