inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

시간의 마법사 RxJS - setTimeout 은 No! 모든 비동기 작업들을 한방에 해결하자

concatMap, concatAll

10강 concatMap, concatAll :: 8분 40초 부분 질문드립니다.

390

YUN HO LEE

작성한 질문수 2

0

안녕하세요 강의 잘 듣고있습니다.

강의 듣다가 이해가 잘 안가는 부분이 있었는데요,

강의 8분 40초 쯔음, 

stream.pipe(
  concatMap(data=> Rx.from(userTask(data)))
).subscribe()

이런식으로 userTask(data) 를

Rx.from 으로 처리하여 옵져버블로 만들어야 한다고

알려주셨습니다.

그런데 그 이유에 대해서는 설명이 없었고,

왜 그렇게 해야하는지 잘 이해가 가지 않았습니다.

실험삼아 userTask(data) 를 Rx.from 으로 처리하지 않았는데도 함수가 잘 동작되었기 때문에 굳이 왜 Rx.from 함수를 써서 옵져버블로 만들었는지 잘 이해가 가지 않았습니다. 

질문 :: userTask(data) 를 옵져버블로 만들어야 할 이유가 무엇인가요?

javascript 함수형-프로그래밍 rxjs

답변 2

1

나무

안녕하세요 좋은 질문 감사합니다:)

먼저 설명드리자면 concatMap 오퍼레이터의 type definition을 살펴보시면 (types.d.ts 파일에 있습니다.)

export declare type ObservableInput<T> = SubscribableOrPromise<T> | ArrayLike<T> | Iterable<T>;

ObservableInput 타입을 반환하는 함수를 인자로 받게 되어있는데, 보시는 바와 같이 SubscribableOrPromise 를 둘다 반환해도 사용이 가능합니다. 따라서 Rx.from 을 사용하지 않아도 그 자체가 Promise 이기 때문에 그대로 사용이 가능합니다.

하지만 굳이 Rx.from 을 사용한 이유는 Promise 를 Observable 로 변환해서 Observable 형태로 바꾸어 반환하는 것이 더 이해하기 쉬울 것 같아서 저렇게 사용했습니다.

'왜 Observable 이 아니라 다른 값을 반환했는데 동작하지?' 와 같은 헷갈림이 있을 것 같아서 저렇게 해두었는데, 이 내용을 강의에서 설명드리는 것이 더 좋았겠다는 생각이 드네요.. ㅎㅎ

0

이충만

안녕하세요. 우선 좋은 강의 감사드립니다. 강의를 듣다가 궁금증이 하나 생겼습니다. 대략적인 느낌으로는 concatAll 이 옵저버블이나 프로미스를 데이터 흐름으로 사용하기 위해 쓰는 것 같은데 그렇다면 혹시, concatMap(v => v) 요 문법이 concatAll() 과 같은 일을 하나요??

74. 데이터 캐시 - 1 (이론) 강의 영상 누락

0

6

0

2강 nodejs 3단계 설명 질문

0

23

1

imagesLoaded에 관한 질문

0

16

2

useEffect와 lifecycle문의

0

22

2

프론트엔드 학습 수준 문의

0

31

2

리액트 챕터별 코드에서 eslint 설정파일이 없어요

0

46

2

최근 코테, 과제 테스트 트렌드

0

64

2

lucide react 아이콘 설치

0

39

2

17강 zustand store 서버에서 생성

1

31

1

문의관련 문의

0

38

2

next.js 를 2대이상 실행하는 경우 제공하는 cache 기능들은 어떻게 되나요?

0

49

2

76. 전문성 더하기: 놓치면 아쉬운 관련 기술들 수업 자료가 없어요.

0

43

2

ai 도구 질문

0

31

1

저는 왜 콘솔에서 props가 한 줄만 찍히나요?

0

45

1

렌더링 차단 리소스 javascript 실행에 관련해서 질문 있습니다.

0

46

2

데이터 로딩중 화면만 계속 나와요!!

0

53

2

퍼블리셔일경우 어느정도 수준까지 강의를 들어야할까요

0

77

2

02-04 layout.tsx 구조가 달라요

0

57

2

불변성을 지키며 수정 삭제를 할때도 Map이 유리한가요?

0

52

1

개인 프로젝트로 앱 개발해서 다운로드 1300 달성했는데 어느 정도 의미가 있을까요? (안드로이드 개발자)

0

68

1

22강 강의 영상 문의 드립니다.

0

47

2

20강 마무리작업에서

0

38

2

아래 위치에 동영상이 보이지 않습니다.

0

51

1

강의 영상의 해상도를 더 높일 수는 없나요?

0

444

1