본문 바로가기
Android/RxJava

RxJava의 동기 방식

by heybrro 2018. 11. 8.

Observable.create(s->{

s.onNext(1);

s.onCompleted();

T fromCache = getFromCache(SOME_KEY);

if(fromCache != null){

// 동기방식으로 처리

s.onNext(fromCache);

s.onCompleted();

} else {

// 비동기방식으로 처리

getDataAsynchronously(SOME_KEY)

.onResponse(v->{

s.onNext(v);

s.onCompleted();

})

.onFailure(exception ->{

s.onError(exception);

}

);

}

}).subscribe();



1) 동기방식을 사용하는 이유

map(), filter(), take(), flatMap(), groupBy() 같은 연산자를 이용하기 위해서,

(실제로 이러한 연산자들은 대부분 동기방식이며 onNext 안에서 이벤트가 지나가는 동안 동기 방식으로 계산을 수행한다.)

...

s.onNext(1);  <-- 이벤트1

s.onNext(2);  <--이벤트2

s.onNext(3);  <--이벤트3



API 함수 

 설명

 

 map()

 

 

 filter()

 

 

 take()

 

 

 merge()

 여러 Observable을 하나처럼 다루기(비동기스트림을 모아 동시 수행)

 

 flatMap()

 

 

 groupBy() 

 

 


'Android > RxJava' 카테고리의 다른 글

RxAndroid (RxJava) 에서 람다를 통해 번잡한 문법을 간단히  (0) 2018.10.31
rxandroid 튜토리얼  (0) 2018.10.31

댓글