<aside> 💡 우리는 이전 아티클에서 subject가 Observable로 하는 역할들에 대해서 배울 수 있었다. 근데 subject는 observer 역할도 할 수 있다고 했는데..?
근데 여기서 문득 드는 생각! 우리가 Observer를 만든적이 있나…?
</aside>
우리는 subscribe를 하면 자동으로 만들어주는 observer를 사용했고
⇒ 생각보다 Observer가 어떤 역할을 하는지 모른다…
so. Observer를 먼저 더 파보자!
단순히 관찰자라고 생각하면,, 그건 그냥 영단어 외우는거고 임마! 자세히 무슨 역할을 하는지 알아보자
일단 우리가 앞에서도 배웠듯이, Observer의 역할을 수행하기 위해선
ObserverType 프로토콜을 채택해야 한다.
그리고 이 프로토콜은 on(_ event: Event<Element>) 메소드를 필수적으로 요구!
public protocol ObserverType {
func on(_ event: Event<Element>)
}
여기서 Event 타입은 아래와 같이
newt, error, completed이 정의된 열거형 인스턴스이다.
@frozen public enum Event<Element> {
case next(Element)
case error(Swift.Error)
case completed
}
아래 Cold Observable 만드는 방법 중 just를 예시로 들면
init할 때 받았던 element를 저장하고 있다가
subscribe가 불릴 경우 그와 동시에 파라미터로 받은 observer에 대고 on(.next(self.element)) 하면서 항목 방출