[Combine] Publisher 요점만!

J_sung_0o0
2 min readSep 28, 2020

Publisher 종류

Future

결과적으로 1개의 값을 생산하고 종료 / 실패 여부 제공

Just

subscriber 들에게 딱 한 번씩만 output 을 방출하고 종료

IMO, 실패 결과 언급이 없는 것으로 봐서는 요청에 대한 결과 보다는 이벤트를 받는 것에 적합한 듯

Deffered

새 subscriber를 위한 퍼블리셔 생산을 위해 제공된 closure 를 실행하기전, 구독을 기다리는 퍼블리셔

Empty

결과값이 없고 선택적으로 즉시 종료(finish)를 할 수 있음

Fail

특정 에러와 함께 즉시 강제종료 (terminate)

Record

연속적인 인풋과 completion 이 들어오는 것을 허용 (각각의 subscriber 들에게 다시 재생해주기 위해)

AnyPublisher

다른 퍼블리셔를 감싸서 타입 삭제를 수행하는 struct

  • Publisher 프로토콜의 구체적인 구현체
  • 스스로 중요한 프로퍼티를 갖지 않음
  • 업스트림 퍼블리셔에서 건너온 요소와 컴플리션을 그대로 넘겨준다 (pass through)
  • API 경계선 외부로 노출하고 싶지 않은 세부사항을 갖는 타입의 퍼블리셔를 래핑(wrapping)할 때 사용
  • SubjectAnyPublisher 로 감싸면 호출자는 send(_:) 메소드 접근 불가
  • 퍼블리셔로 AnyPublisher로 감싸기 위해 eraseToAnyPublisher 사용

Published

속성으로 표시된 프로퍼티를 퍼블리싱 하는 타입

ObservableObject프로토콜 참고

AnyCancellable

타입 삭제를 취소할 수 있는 객체로, 취소할 때 제공된 closure를 실행

--

--

J_sung_0o0

Apple WWDC 19 & 20 Winner (The 1st two-time winner of all time from South Korea)