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

Was this helpful?