Combine Publisher

AekT·2022년 6월 14일
0

Combine

목록 보기
2/2
post-thumbnail

Publisher

  • Publisher는 protocol이다.
  • Publisher protocol은 시간에 따른 값의 흐름을 전달할 수 있다.
  • Subscription을 만들고 Subscriber에게 값과 completion을 내보내는 타입을 위한 protocol이다.
  • Publisher는 값을 받아 처리하고 다시 전달하는 operators를 가진다.

미리 정의된 Publisher 구현체

  • Just
  • Future
  • Deferred
  • Empty
  • Fail
  • Record
  • AnyPublisher

Just (struct)

  • 가장 단순한 형태의 Publisher이다.
  • 자신을 subscribe하는 Subscriber들에게 한 번에 값을 내보낸 후 finish를 보내는 Publisher이다.
  • Failure 타입은 항상 Never이다.

Future (class)

  • 하나의 결과를 비동기로 생성한 후 completion을 보내는 Publisher이다.
  • 값을 내보낼 때 호출할 클로저를 매개변수로 받아서 그걸 값을 내보낼 때마다 계속 호출하는 Publisher이다.
  • 클로저를 전달하는 과정에서 completion handler를 사용하는 경우 Future를 사용할 시 더욱 깔끔한 코드 작성이 가능하다.

Deferred (struct)

  • 구독이 일어나기 전까지 대기상태로 있다가 구독이 일어 났을 때 Publisher가 결정이 된다. 클로저 안에는 지연 실행 할 Publisher 를 반환합니다.
  • Swift의 lazy와 비슷하게 Publisher가 실제 사용될 때 Publisher를 생성하기에 메모리를 효율적으로 사용할 수 있다.

Empty (struct)

  • 값을 게시하지 않고 선택적으로 즉시 완료되는 Publisher이다.

Fail (struct)

  • Error를 즉시 보낼 수 있는 Publisher이다.

Record (struct)

  • 각각의 Publisher가 나중에 내보낼 수 있도록 input과 completion을 저장해두는 Publisher이다.
profile
으악

0개의 댓글