Single
RxJava (and its derivatives like RxGroovy & RxScala) has developed an Observable variant called “Single.”
RxJava(및 RxGroovy 및 RxScala와 같은 파생 제품)는 "Single"이라는 Observable 변형을 개발했습니다.
A Single is something like an Observable, but instead of emitting a series of values — anywhere from none at all to an infinite number — it always either emits one value or an error notification.
Single은 Observable과 비슷하지만 일련의 값을 내보내는 대신(전혀 없는 것부터 무한한 수까지) 항상 하나의 값이나 오류 알림을 내보냅니다.
For this reason, instead of subscribing to a Single with the three methods you use to respond to notifications from an Observable (onNext, onError, and onCompleted), you only use two methods to subscribe:
이러한 이유로 Observable의 알림에 응답하는 데 사용하는 세 가지 방법(onNext, onError 및 onCompleted)으로 Single을 구독하는 대신 구독에 두 가지 방법만 사용합니다.
onSuccess
a Single passes this method the sole item that the Single emits
성공
Single은 이 메서드를 Single이 방출하는 유일한 항목으로 전달합니다.
onError
a Single passes this method the Throwable that caused the Single to be unable to emit an item
오류 발생
Single이 이 메서드를 전달하여 Single이 항목을 방출할 수 없게 만든 Throwable이 됩니다.
A Single will call only one of these methods, and will only call it once. Upon calling either method, the Single terminates and the subscription to it ends.
Single은 이러한 메서드 중 하나만 호출하고 한 번만 호출합니다. 두 메서드 중 하나를 호출하면 Single이 종료되고 이에 대한 구독이 종료됩니다.
Composition via Single Operators
Like Observables, Singles can be manipulated by means of a variety of operators. Some operators also allow for an interface between the Observable world and the Single world so that you can mix the two varieties:
Observable과 마찬가지로 Singles는 다양한 연산자를 통해 조작할 수 있습니다. 일부 연산자는 Observable 세계와 단일 세계 사이의 인터페이스를 허용하여 두 종류를 혼합할 수도 있습니다.
operator | returns | description |
compose | Single | 사용자 지정 연산자를 만들 수 있습니다. |
concat and concatWith | Observable | 여러 Singles에 의해 방출된 항목을 Observable 방출로 연결 |
create | Single | 구독자 메서드를 명시적으로 호출하여 처음부터 Single 만듦 |
delay | Single | 단일 항목의 방출을 미룸 |
doOnError | Single | onError를 호출할 때 지정한 메서드도 호출하는 Single을 반환 |
doOnSuccess | Single | onSuccess를 호출할 때 지정한 메서드도 호출하는 Single을 반환 |
error | Single | 구독자에게 즉시 오류를 알리는 Single을 반환 |
flatMap | Single | Single이 내보낸 항목에 적용된 함수의 결과인 Single을 반환 |
flatMapObservable | Observable | Single에서 내보낸 항목에 적용된 함수의 결과인 Observable을 반환 |
from | Single | Future를 Single로 변환 |
just | Single | 지정된 항목을 내보내는 Single을 반환 |
map | Single | 소스 Single에서 내보낸 항목에 적용된 함수의 결과를 내보내는 Single을 반환 |
merge | Single | 두 번째 Single을 방출하는 Single을 두 번째 Single에서 방출하는 항목을 방출하는 Single로 변환 |
merge and mergeWith | Observable | 여러 싱글에 의해 방출된 항목을 관찰 가능한 방출로 병합 |
observeOn | Single | Single이 특정 스케줄러에서 구독자 메서드를 호출하도록 지시 |
onErrorReturn | Single | 오류 알림을 보내는 Single을 지정된 항목을 내보내는 Single로 변환 |
subscribeOn | Single | Single이 특정 스케줄러에서 작동하도록 지시 |
timeout | Single | 소스 Single이 지정된 시간 동안 값을 내보내지 않으면 오류를 알리는 Single을 반환 |
toSingle | Single | 단일 항목을 방출하는 Observable을 해당 항목을 방출하는 Single로 변환 |
toObservable | Observable | Single을 Observable로 변환하여 Single에 의해 방출된 항목을 방출한 다음 완료 |
zip and zipWith | Single | 두 개 이상의 다른 Single에서 방출된 항목에 적용된 함수의 결과인 항목을 방출하는 Single을 반환 |
※ 참고 출처
'RxSwift' 카테고리의 다른 글
[iOS / RxSwift] Subject (0) | 2022.09.13 |
---|---|
[iOS / RxSwift] Operators (0) | 2022.09.02 |
[iOS / RxSwift] Observable (0) | 2022.09.01 |