cozzin
코찐 기술 블로그
cozzin
전체 방문자
오늘
어제
  • 분류 전체보기
    • Kotlin
    • 백엔드
    • iOS
      • Swift
      • SwiftUI
      • Combine
      • Architecture
    • 개발환경
    • 세미나
    • 생각정리
    • 스터디
    • CS
      • Refactoring
      • OS

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • LinkedIn
  • 강의

공지사항

인기 글

태그

  • slide-over
  • multicast
  • Combine
  • WWDC
  • 리팩토링
  • 컴퓨터공학
  • ios
  • WWDC21
  • 워닝제거
  • darkmode
  • Swift
  • os
  • Ribs
  • 디자인패턴
  • Warning
  • XCode
  • 테스트
  • SwiftUI
  • 운영체제
  • CS

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
cozzin

코찐 기술 블로그

[Combine 책 정리] Chapter 9: Networking
iOS/Combine

[Combine 책 정리] Chapter 9: Networking

2021. 1. 27. 14:37
반응형

안녕하세요 코찐입니다.

아래의 자료를 따라서 공부하고 있습니다.

https://www.raywenderlich.com/books/combine-asynchronous-programming-with-swift/v2.0 

 

한 가지 API Publisher에 여러 Subscriber가 붙는 예제입니다.

let url = URL(string: "https://www.raywenderlich.com")!
let publisher = URLSession.shared
  .dataTaskPublisher(for: url)
  .map(\.data)
  .multicast { PassthroughSubject<Data, URLError>() }

let subscription1 = publisher
  .sink(receiveCompletion: { completion in
    if case .failure(let err) = completion {
      print("Sink1 Retrieving data failed with error \(err)")
    }
  }, receiveValue: { object in
    print("Sink1 Retrieved object \(object)")
  })

let subscription2 = publisher
  .sink(receiveCompletion: { completion in
    if case .failure(let err) = completion {
      print("Sink2 Retrieving data failed with error \(err)")
    }
  }, receiveValue: { object in
    print("Sink2 Retrieved object \(object)")
  })

let subscription = publisher.connect()

 

원래는 sink로 구독이 활성화되면 publisher가 작업을 바로 수행하게 됩니다.

그러면 API를 2번 실행하게 되는데요...

multicast를 사용하면 API를 한번만 실행할 수 있도록 만들어줍니다.

반응형
저작자표시 (새창열림)

'iOS > Combine' 카테고리의 다른 글

[Combine 책 정리] Chapter 11: Timers  (0) 2021.01.27
[Combine 책 정리] Chapter 10: Debugging  (0) 2021.01.27
[Combine 책 정리] Chapter 7: Sequence Operators  (0) 2021.01.22
[Combine 책 정리] Chapter 6: Time Manipulation Operators  (0) 2021.01.19
[Combine 책 정리] Chapter 5: Combining Operators  (0) 2021.01.18
    'iOS/Combine' 카테고리의 다른 글
    • [Combine 책 정리] Chapter 11: Timers
    • [Combine 책 정리] Chapter 10: Debugging
    • [Combine 책 정리] Chapter 7: Sequence Operators
    • [Combine 책 정리] Chapter 6: Time Manipulation Operators
    cozzin
    cozzin
    Software Engineer

    티스토리툴바