2016-07-29 3 views
4

나는 배압이 지원되지 않기 때문에 Observable.createis discouraged in RxJava의 사용법을 알고 있습니다. 이 때문에, 새로운 Observable.fromAsync을 콜백 API를 래핑하기 위해 사용했는데, 그 이유는 백 프레셔를 다룰 때 Observable.create과 같은 행동을 보이는 것처럼 보였기 때문입니다. 이 정확Observable.create 및 Observable.fromAsync in RxJava

Observable<T> observable = Observable.create(onSubscribe).onBackpressureBuffer(); 

: these draft docs에서 그러나

는 제안은 아래이 문제를 해결해야처럼 내이 관찰 만들어 노출시키는 것 같다? 이 시점에서 두 연산자의 차이점은 무엇입니까? 이 내용이 정확하지 않은 경우 .create.fromAsync 이상으로 사용할 이유가 있습니까?

답변

5

create은 대부분 RxJava의 내부 작동을 지원하고 운영자를 구현하는 방법을 알고있는 사람들을위한 것입니다. 여러 운영자가 서로 다른 접근법을 요구하기 때문에 배압과 탈퇴를 수동으로 처리해야합니다.

fromEmitter의 역압 요건을 명시 적으로으로 지정하고 일부 탈퇴 관리도 제공합니다. 따라서 잘못 사용하는 것은 어렵습니다. 고전적인 콜백 API를 래핑하는 것이 필요한 경우 전환하는 것이 좋습니다.

편집 :부터 RxJava 1.2.6까지 메소드 이름은 fromEmitter입니다.

+0

알았습니다. 일반적으로'create'는 잊어 버렸습니다. 감사! – Marcus

+0

알아두기 - 당신이 링크 한이 새로운 문서는 현저합니다! 빠르게 공개하세요! – Marcus

+0

@Marcus 공개입니다. http://stackoverflow.com/documentation – LordRaydenMK