[iOS/RxSwift] CombineLatest vs Observable.zip

2023. 11. 19. 20:12·iOS/RxSwift&Combine
목차
  1. 💡 CombineLatest
  2. 💡 Zip
  3. 정리
  4. ✔️ combineLatest vs zip

 

💡 CombineLatest

Untitled.png

2개 이상의 Observable을 결합하여 하나의 Observable로 만들 때 사용한다.

Untitled.pngUntitled.png

CombineLatest는 결합하려는 이벤트가 최소 한 번씩은 next이벤트가 emit되어야 구독을 시작하게 된다.

위의 예시는 BehaviorSubject 이벤트를 결합 한 것이다. BehaviorSubject는 초기 값을 설정하게 되어 선언 후 바로 combineLatest를 수행하게 된다.

 

만약! 초기값이 없는 PublishSubject를 사용한다면?

Untitled.pngUntitled.png

a와 b 모두 한 번 emit이 되어야 combineLatest를 수행할 수 있다.

a의 이벤트가 먼저 emit이 된 후 b가 emit이 되기 때문에 b가 emit되는 시점에 combineLatest를 수행할 수 있게 된다.

combineLatest를 수행하는 시점의 a 값은 마지막으로 emit 된 5가 전달된다.

Untitled.png

b이벤트가 emit되지 않으면 combineLatest는 수행되지 않는다.

💡 Zip

Untitled.png

zip은 combineLatest와 비슷하게 2개 이상의 Observable을 결합하여 하나의 Observable을 만든다는 점에서 비슷하다.

zip은 emit 시점보다 몇 번째로 emit되는 것인지가 중요하다.

 

위와 같은 예시를 사용해보자면

Untitled.pngUntitled.png

a에서 첫번째로 emit된 2와 b에서 첫번째로 emit이 된 “나”가 짝을 지어 emit된다.

 

정리

✔️ combineLatest vs zip

2개 이상의 Observable을 결합하여 하나의 Observable을 만든다는 점에서는 비슷하다.

combineLatest

  • 결합 하려는 이벤트가 모두 최소 한 번 emit 되어야 subscribe를 시작한다.
  • emit되는 대로 조합해서 emit

zip

  • emit되는 순서가 같은 observable을 짝 지어서 방출한다.
  • emit시점 보다 몇 번째로 emit 된 것인지가 중요함

'iOS > RxSwift&Combine' 카테고리의 다른 글

[RxSwift] Rx 를 사용하여시스템 권한 요청받기 (카메라, 앨범, 알림)  (1) 2024.11.06
[iOS/ReactorKit] ReactorKit 알아보기  (0) 2024.02.28
RxSwift 왜 사용??  (2) 2023.12.28
RxSwift 정리하기  (0) 2023.11.08
  1. 💡 CombineLatest
  2. 💡 Zip
  3. 정리
  4. ✔️ combineLatest vs zip
'iOS/RxSwift&Combine' 카테고리의 다른 글
  • [RxSwift] Rx 를 사용하여시스템 권한 요청받기 (카메라, 앨범, 알림)
  • [iOS/ReactorKit] ReactorKit 알아보기
  • RxSwift 왜 사용??
  • RxSwift 정리하기
김졀니
김졀니
🍎 iOS 개발
  • 김졀니
    졀니의 개발 공부✨
    김졀니
  • 전체
    오늘
    어제
    • 분류 전체보기
      • iOS
        • Swift
        • UIKit&SwiftUI
        • RxSwift&Combine
        • WWDC
      • Study
        • 🚨 TroubleShooting
        • 🌱 SeSAC
  • 블로그 메뉴

    • 홈
    • Github
  • 인기 글

  • 최근 글

  • 태그

    swift concurrency
    mainactor
    ios
    traits
    concurrency
    wwdc23
    clipstobounds
    위치 권한
    Swift
    displayPriority
    FileManager
    kingfisher header
    인앱리뷰
    mapkit
    CLLocation
    swiftdata
    pointfree
    동시성프로그래밍
    Realm
    actor
    Drawing Cycle
    layoutIfNeeded
    RxSwift
    observable
    OperationQueue
    의존성 주입
    이미지 캐싱
    Sendable
    ReactorKit
    @PropertyWrapper
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
김졀니
[iOS/RxSwift] CombineLatest vs Observable.zip
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.