inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Kevin의 알기 쉬운 RxJava 1부

변환 연산자 (1)

flatMap, concatMap 예제 코드에서 질문입니다.

305

공부하는학생

작성한 질문수 4

1

안녕하세요. 강의 너무 잘 듣고 있어요.^^

제가 잘 이해하고 있는지 확인차 질문드립니다.

flatMap이나 concatMap에 Observable.interval에서 

period를 0으로 주면 publisher가 데이터를 발행한 즉시 take, skip, map operator를 실행하게 되고

period를 0보다 크게 주면 데이터가 도착했더라도 주어진 시간만큼 기다렸다가 take, skip, map 처리를 실행한다 라고 이해하면 될까요?

함수형-프로그래밍 RxJava Reactive Programming Reactive-Streams

답변 1

1

Kevin

안녕하세요? 업무 중이라서 답변이 조금 늦었네요.

윤정님께서 이해하고 계시는게 맞기도 한데 저한테 얘기하신 문장에서 조금 오해의 소지가 있는것 같아서 부연 설명을 잠깐 드리자면, interval 연산자의 파라미터인 period 값은 다운스트림(Downstream) 즉, interval 연산자의 아래쪽에 있는  take, skip, map 같은 연산자들이 interval 연산자가 통지한 데이터를 기다리기 위한 대기 시간이 아니라 interval 연산자가 통지하는 데이터의 통지 주기를 의미합니다.

period의 값을 '2'로 주면 interval 연산자 함수에서 2초에 한번씩 0부터 1씩 증가한 숫자를 통지하는 것이죠.

기다린다라는 말의 주체를 따진다면 interval 연산자 함수 자체가 해당 주기만큼 반복해서 기다리는 것이지 take, skip, map 같은 하위 연산자 함수가 기다리는건 아닌것이죠. ^^;

참고로 interval 함수에서 첫번째 통지되는 데이터를 대기없이 즉시 통지하고 싶다면 아래 소스처럼 initialValue 값을 '0'으로 주시면 된답니다.

public class ObservableIntervalExample {
public static void main(String[] args){
System.out.println("# start : "
+ TimeUtil.getCurrentTimeFormatted());

Observable.interval(0,
1000L, TimeUnit.MILLISECONDS)
.map(num -> num + " count")
.subscribe(data -> Logger.log(LogType.ON_NEXT, data));

TimeUtil.sleep(3000);
}
}

답변이 제대로 되셨는지 모르겠네요. 더 질문하실게 있으시면 언제든지 글 남겨주시면 감사드릴게요.

0

공부하는학생

기다린다라는 표현이 적절하지 못하다는걸 깨달았어요. 이부분을 놓쳤다면 다른 개념도 혼동했을거 같아요.

명확하게 다시 한 번 짚어주셔서 감사해요! :)

Single과 관련해 여쭤보고 싶은 부분이 있습니다!

0

270

2

cold/hot publisher 예제 코드와 관련해 질문 드립니다.

0

373

1

CompletableObserver 클래스의 람다식 표현관련

0

304

1

1강에 예시로 보여주신 ToDoSample 코드에 관해 질문 드립니다!

0

363

1

데이터 결합 연산자 / merge 관련 질문

0

457

1

DROP 배압 전략에 관한 궁금증

0

307

2

map에서의 TimeUtil.sleep에 관한 궁금점

0

221

1

강의 내용을 정리해서 개인 블로그에 올려도 될까요?

0

571

2

TimeUtil.sleep 관련 질문

0

291

1

배압 전략 중에서 DROP 전략과 관련해서 질문 있습니다.

0

340

1

Error 발생 시에도 계속 처리 방법

0

693

2

선언형 프로그래밍과 명령형 프로그래밍

1

793

2

첫번째 강의 부터 이번강의까지 수강하면서 궁금한점 질문드립니다.

0

331

1

안녕하세요. 질문이 있습니다.

1

358

1

logger 가 없는데 util 폴더도 같이 갖다놔야 하나요?

0

334

1

amb 연산자

0

241

1

질문 드립니다.

0

223

1

concatEager( ) 연산자에 관하여

0

321

1

Reactive Streams의 구성요소들과 RxJava의 구성요소들의 관계?

1

408

2

ObservableSequenceEqualExample.java 예제의 delay( ) 연산자 질문있습니다

0

318

3

defer( ), fromFuture( )도 just( )처럼 여러 인자 값을 받을 수 있는지 궁금합니다.

0

273

3

flatMapSingle() 메소드에 대하여

0

627

6

fromFuture() vs fromCallable() 생성 연산자에 대해

0

583

2

함수형 인터페이스 Comparator에 대해

0

404

2