Customize handling of asynchronous events by combining event-processing operators.
이벤트 처리 operator들의 결합에 의해 발생하는 비동기 이벤트를 커스텀하게 다루는 것
즉 하나의 이벤트가 아닌, 여러 이벤트 들에 대해서 용도에 맞게 적절히 커스터마이징 가능!
선언형으로 쓰이는 API이다
Publisher
는 일련의 값을 전달하는 타입을 선언한다.
Subscriber
는 위 Publisher의 엔드 포인트라고 할 수 있다. 즉, 값을 받는 입장이다.
Subscriber가 요청하고 그에 대한 응답으로 값을 받을 수 있다.
따라서 N개를 요청하면 N개 혹은 그 이하의 값을 전달받는다.
한개 혹은 하나 이상의 Subscriber 인스턴스에게 값을 전달한다.
반드시 Subscriber의 Input과 Failure, 와 Publisher의 Output과 Failuare 타입은 같아야 한다.
Subscriber와 연결은 어떻게?
receive(subscriber:)
operator가 extension으로 선언 되어있다. 즉, operator는 Publisher
타입이다.
For example, the
map(_:)
operator returns an instance ofPublishers.Map
.
커스텀 Publisher도 만들 수 있다.
PassthroughSubject
send(_:)
메소드로 값을 publish할 수 있다.CurrentValueSubject
를 사용하라.@Published
의 의미는 다음과 같다.
단지 ‘설명’(description)의 역할을 하기 때문에, value type.