상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - switchMap의 return 값을 어떻게 처리하나요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
`switchMap`은 RxJS에서 주로 사용하는 연산자로, 내부에서 다른 Observable을 생성하고, 이전에 구독하던 Observable을 취소(cancellation)하며, 새로운 Observable의 결과를 방출하는 역할을 합니다. `switchMap`의 반환값 처리 방법은 다음과 같이 이해할 수 있습니다. 1. `switchMap`의 반환값이란? `switchMap`은 내부 함수가 반환하는 Observable을 구독하고, 그 Observable에서 방출하는 값을 최종 스트림으로 출력합니다. 즉, `switchMap` 자체가 반환하는 것은 내부에서 반환된 Observable이 방출하는 아이템들이 흐르는 새로운 Observable 입니다. 2. `switchMap` 내부 함수의 반환값 처리 `switchMap`의 콜백 함수는 매번 값이 방출될 때마다 호출되고, 이 함수는 새로운 Observable을 반환해야 합니다. 예를 들어, API 호출, 타이머, 비동기 작업 등을 Observable 형태로 반환하는 경우가 많습니다. 3. 최종 결과를 받기 위한 구독(subscribe) `switchMap`을 사용한 Observable도 결국엔 구독자가 필요합니다. 최종적으로 `switchMap`이 반환한 Observable을 `subscribe`하거나, 다른 연산자와 함께 활용해서 결과값에 접근합니다. 4. 예시 ```typescript import { of, interval } from 'rxjs'; import { switchMap, take } from 'rxjs/operators'; const source$ = of(1, 2, 3); source$.pipe( switchMap(value => { // value마다 새로운 interval Observable 생성 return interval(1000).pipe(take(2)); // 0과 1을 방출 후 종료 }) ) .subscribe(result => console.log(result)); ``` 이 예시에서 `switchMap`의 콜백은 숫자를 받아 그 값과 관련 없이 1초 간격으로 2번 숫자(0, 1)를 방출하는 Observable을 반환합니다. 이전 Observable은 값이 바뀌면 취소되고, 새 Observable로 전환됩니다. 구독을 통해 0과 1이 콘솔에 출력됩니다. 5. 반환된 Observable의 값을 처리하는 방법 - `subscribe`에서 직접 처리: `switchMap` 뒤에 `subscribe`를 붙여서 최종 결과를 받는다. - 다른 RxJS 연산자와 결합: `.pipe(map(), filter(), tap() 등)`으로 가공하거나 부수 효과를 추가 가능. - async pipe와 함께 Angular 템플릿에서 사용하여 자동 구독 및 해제. 요약하면, `switchMap` 자체는 내부 콜백 함수가 반환하는 새로운 Observable을 구독해서 이 Observable에서 방출하는 값을 외부로 내보냅니다. 반환된 값을 처리하려면 `switchMap` 체인을 구독하거나 그 외 다른 RxJS 연산자를 활용해서 값을 가공합니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기