Java기록 - Single 클래스
- Single 클래스는 오직 1개의 데이터만 발행
- 데이터는 발행과 동시에 종료되며 OnNext()와 OnComplete() 함수가
onSuccess()
함수로 통합된 것
just() 함수
- Single 객체를 생성
Single<String> source = Single.just("Hello Single");
source.subscribe(System.out::println);
Observable에서 Single 클래스
// 기존 Observable에서 Single 객체로 변환
Observable<String> source = Observable.just("Hello Single");
Single.fromObservable(source)
.subscribe(System.out::println);
👉🏻 기존 Observable에서 첫 번째 값을 발행하면 onSuccess 이벤트 호출 후 종료
//single() 함수를 호출해 Single 객체 생성
Observable.just("Hello Single")
.single("default item")
.subscribe(System.out::println);
👉🏻 Observable.just()를 통해 생성된 Observable에 single() 함수를 호출
single() 함수는 default value를 인자로 갖고 Observable에서 값이 발행되지 않을 때 기본값 발행
//first() 함수를 호출해 Single 객체 생성
String[] colors = {"Red", "Blue", "Gold"};
Observable.fromArray(colors)
.first("default value")
.subscribe(System.out::println);
👉🏻 여러개의 데이터를 발행할 수 있는 Observable을 Single 객체로 변환
first() 함수를 호출하면 Observable이 Single객체로 변환
하나 이상의 데이터를 발행하더라도 첫 번째 데이터 발행 후 onSuccess 이벤트 발생
//Empty에서 Single 객체 생성하기
Observable.empty()
.single("default value")
.subscribe(System.out::println);
👉🏻Observable에서 값이 발행되지 않을 때 기본값을 갖는 Single객체로 변환
//take() 함수에서 Single 객체 생성
Observable.just(new Order("ORD-1"), new Order("ORD-2"))
.take(1)
.single(new Order("default order"))
.subscribe(System.out::println);
👉🏻 String 뿐만 아니라 Order같은 사용자 정의 클래스도 Single에서 사용 가능
Single 클래스 에러가 발생하는 경우
Single<String> source = Observable
.just("Hello Single", "Error").single("default item");
source.subscribe(System.out::println);
⇒ just() 함수에 여러 개 값이 들어가 있기 때문에 에러 발생
Author And Source
이 문제에 관하여(Java기록 - Single 클래스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ddyy094/RxJava기록-Single-클래스저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)