카테고리 없음
[RxSwift] merge로 결과가 같은 Observable 묶기
miniOS
2022. 1. 12. 02:34
글 쓰기 상태일 때, 글 수정 상태일 때 오른쪽 상단의 완료버튼을 누르는 이벤트와
왼쪽 X버튼을 누르는 이벤트가 dismiss로 동일했습니다.
즉, create일때는 서버에 Post를 보낸 뒤, 오류가 없으면 dismiss하고
update일때는 서버에 Put을 보낸 뒤, 오류가 없으면 dismiss하고
X버튼을 누르면 항상 dismiss해주어야 했습니다.
이 경우 모든 Observable stream을 하나로 만들어주어서, 하나의 Observable만 구독한다면 코드의 반복을 줄일 수 있을 것이라고 생각했습니다.
그래서 Input 대비 Output은 result라는 Observable 단 한 개만을 만든 뒤,
result를 나머지 stream의 merge로 만들었습니다.
이렇게 하면 result만 구독해도 모든 기능을 구현할 수 있게 됩니다.
merge의 marble diagram은 아래와 같아, 보면 쉽게 이해할 수 있습니다.