RxSwift

[iOS / RxSwift] Single

Minny27 2022. 9. 12. 01:44

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의 알림에 응답하는 데 사용하는 세 가지 방법(onNextonError 및 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을 반환

 

 

 

※ 참고 출처

ReactiveX 공식 문서

 

ReactiveX - Single

 

reactivex.io

'RxSwift' 카테고리의 다른 글

[iOS / RxSwift] Subject  (0) 2022.09.13
[iOS / RxSwift] Operators  (0) 2022.09.02
[iOS / RxSwift] Observable  (0) 2022.09.01