2017-11-29 19 views
0

나는 이것들을 방법에 비유했고, 나는 문서에서 얻은 것으로부터 거의 똑같은 것을한다. 코드를 보면 분명히 다른 것들을합니다. 처음부터 single()Observable (이유는?)을 반환하고 toSingle()은 Single을 반환합니다.Observable # single()과 Observable # toSingle()의 차이점은 무엇입니까?

반응적인 세계에 대한 제한된 지식으로 인해 궁금해합니다. 왜 두 가지 방법이 모두 존재합니까? 그들은 어떤 차이가 있습니까? 그들 중 누구도 다른 사람을 사용해야합니까?

immediately 중 하나 또는 둘 모두가 ObservableSingle으로 변환하고 항목을 내보내지 않은 경우 오류가 발생합니까? 또는 그들은 이벤트가 방출 될 때까지 기다릴 것입니까?

나 자신의 대리석 다이어그램 (toSinglesingle) 다른 점이다 배플, 그러나 그들의 문서들이 특히 그들이 single() 대리석 다이어그램처럼 행동한다, 정확히 같은 행동해야 무슨 말을 또 다른 것은. 여기

이 문서입니다 : (문서 상태로) 하나 개 이상의 항목에 공급하면 내가 모두 동일하다고 생각 Observable#toSingle Observable#single

+0

각 운영자의 설명서에 대한 링크를 제공 할 수 있습니까? – Enigmativity

답변

3

이유는 두 가지 방법이 존재를 사용하는 안전한 방법?

single()은 원래 ReactiveX 연산자 집합의 일부입니다. toSingle()은 나중에 Single이 RxJava에 도입되었을 때 추가되었습니다.

그들은 어떤 차이가 있습니까?

그들은 다른 기본 반응 클래스를 반환합니다. single()Observable이고 toSingle()Single으로 변환됩니다.

다른 사람이 사용해야합니까?

사용할 유형과 곧 RxJava 2.x로 이동할 것인지 여부에 따라 다릅니다. RxJava 2에는 toSingle이없고 (대부분의) 연산자가 더 적합한 유형 인 single(T), singleOrError() 또는 singleElement()을 반환합니다.

자신의 대리석 다이어그램

toSingle의 대리석 오류의 경우 기능이없는 다른과 Single 유형의 시간도 Observable보다 시간이 지남에 따라 이벤트를 나타 내기 위해 약간 다른 규칙을 가지고있다.

0

, 모두 상류 완료에 1 개 항목을 생성합니다, 모두 오류가 발생합니다 그래서 그들이 observable.take 것 (1) .toSingle() 또는 실제로 observable.take (1) .single()