Publishers.Print

μ œλ„€λ¦­ ꡬ쑰체 | λ°œν–‰ν•˜λŠ” λͺ¨λ“  μ΄λ²€νŠΈμ— λŒ€ν•˜μ—¬, μ„ νƒμ μœΌλ‘œ 접두사λ₯Ό 뢙일 수 μžˆλŠ” 둜그 λ©”μ„Έμ§€λ₯Ό 좜λ ₯ν•˜λŠ” Publisher

μ΄λ‹ˆμ…œλΌμ΄μ €λŠ” μ„Έ 개의 인자λ₯Ό λ°›λŠ”λ‹€.

  • upstream : μƒμœ„μ— 흐λ₯΄λŠ” Publisher

  • prefix : 둜그 λ©”μ„Έμ§€μ˜ μ•žμ— 뢙일 λ¬Έμžμ—΄

  • to : ν…μŠ€νŠΈλ₯Ό 좜λ ₯ν•  κ³³. nil이면 ν‘œμ€€ 좜λ ₯으둜 좜λ ₯ν•œλ‹€.

μ΄λ²€νŠΈμ— λŒ€ν•˜μ—¬ 둜그 λ©”μ„Έμ§€λ₯Ό 좜λ ₯ν•œλ‹€.

λ‹€μŒμ˜ 이벀트λ₯Ό μ „λ‹¬λ°›μœΌλ©΄ 둜그 λ©”μ„Έμ§€λ₯Ό 좜λ ₯ν•œλ‹€.

  • ꡬ독Subscription

  • κ°’Value

  • 정상 μ’…λ£ŒNormal Completion

  • μ‹€νŒ¨Failure

  • μ·¨μ†ŒCancellation

λ§€ μ˜€νΌλ ˆμ΄ν„° μ‹€ν–‰ ν›„ Publisher의 μƒνƒœλ₯Ό ν™•μΈν•˜λŠ” λ“± 디버깅 κ³Όμ •μ—μ„œ μœ μš©ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλ‹€.

print μ˜€νΌλ ˆμ΄ν„°μ™€ 관련이 μžˆλ‹€.

// Publishers.Print Publisher
Publishers
  .Print(upstream: Just(Void()), prefix: "")
  .sink(receiveCompletion: { completion in
    switch completion {
    case .failure:
      print("Combine Print Error")
    case .finished:
      print("Combine Print Finish")
    }
  }, receiveValue: {
    print("Combine Print")
  })
  .store(in: &cancellables)

// print Operator
Just(Void())
  .print()
  .sink(receiveCompletion: { completion in
    switch completion {
    case .failure:
      print("Combine Print Error")
    case .finished:
      print("Combine Print Finish")
    }
  }, receiveValue: {
    print("Combine Print")
  })
  .store(in: &cancellables)

// receive subscription: (Just)
// request unlimited
// receive value: (())
// Combine Print
// receive finished
// Combine Print Finish

prefix에 μ‹€ν–‰ μ‹œκ° / 파일, 라인, ν•¨μˆ˜ 이름 정보 등을 λ‹΄μœΌλ©΄ λ”μš± λ””λ²„κΉ…ν•˜κΈ° 쒋을 것이닀.

RxSwift

debug μ˜€νΌλ ˆμ΄ν„°λ₯Ό μ‚¬μš©ν•˜μ—¬ κ΅¬ν˜„ν•  수 μžˆλ‹€.

ReactiveSwift

logEvents μ˜€νΌλ ˆμ΄ν„°λ₯Ό μ‚¬μš©ν•˜μ—¬ κ΅¬ν˜„ν•  수 μžˆλ‹€.

Last updated