티스토리 뷰

RxSwift

[RxSwift] Operator, Combining Observables

Hani_Levenshtein 2021. 7. 15. 20:04

안녕하세요 Hani입니다.

이번에는 복수의 Observable을 결합시켜주는 operator에 대하여 알아보겠습니다. 

 


CombineLatest

가장 마지막에 방출한 item을 결합하여 새로운 item을 만들어내는 combineLatest입니다.

두 source중 하나라도 item이 없으면 아무런 item도 새로 만들어내지 않습니다.

 

두 source가 전부 complete되어야 Observable이 complete되는군여 🔥

 


Merge

 

source들이 방출하는 item을 시간 순서대로 병합시켜주는 merge입니다.

두 source가 전부 complete되어야 Observable이 complete됩니다.

 


Concat

merge와 비슷하지만 Observable에만 적용할 수 있는 concat입니다.

 

한 Observable이 완료되고 수행되는 것이기 때문에 두 번째 source는 Subject여도 됩니다. 


StartWith

맨 앞에 item을 추가해주는 startWith입니다.

 


Switch

 

switch는 source을 바꿔가며 item을 가져올 수 있는 operator입니다.

사용한 source들과 결과물을 모두 complete해야 complete될 수 있습니다.

 


Zip

두 source를 합하여 새로운 item들로 구성된 Observable을 만들어줄 수 있는 zip입니다.

짝이 있는 item만 결합할 수 있습니다.

 

그런데 왜 complete이 출력되지 않는 걸까요? 🥺

 

 


References

http://reactivex.io/documentation/operators.html

댓글