Optional.Publisher

๊ตฌ์กฐ์ฒด | ์˜ต์…”๋„์ด ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด, ๊ฐ Subscriber์—๊ฒŒ ์ •ํ™•ํžˆ ํ•œ ๋ฒˆ ์˜ต์…”๋„ ๊ฐ’์„ ๋ฐœํ–‰ํ•˜๋Š” Combine Publisher

์ด๋‹ˆ์…œ๋ผ์ด์ €๋Š” ํ•œ ๊ฐœ์˜ ์ธ์ž๋ฅผ ๋ฐ›๋Š”๋‹ค.

  • output : ๊ฐ Subscriber์—๊ฒŒ ์ „๋‹ฌํ•  ์˜ต์…”๋„ ๊ฐ’

  • ์˜ต์…”๋„ ๊ฐ’์ด nil์ด ์•„๋‹ˆ๋ผ๋ฉด ์˜ต์…”๋„์ด ๋ฒ—๊ฒจ์ง„ ๊ฐ’์„ ์ „๋‹ฌํ•˜๊ณ  ์ข…๋ฃŒํ•œ๋‹ค.

  • ์˜ต์…”๋„ ๊ฐ’์ด nil์ด๋ผ๋ฉด ๊ฐ’์„ ์ „๋‹ฌํ•˜์ง€ ์•Š๊ณ  ๋Œ€์‹  ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒํ•œ๋‹ค.

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

// Combine Optional
// Combine Optional Finish

// 2
Optional.Publisher(nil)
  .sink(receiveCompletion: { completion in
    switch completion {
    case .failure:
      print("Combine Optional Error")
    case .finished:
      print("Combine Optional Finish")
    }
  }, receiveValue: {
    print("Combine Optional")
  })
  .store(in: &cancellables)

// Combine Optional Finish

1์˜ ์ฝ”๋“œ๋Š” ์ธ์ž๋กœ nil์ด ์•„๋‹Œ ๋“ค์–ด๊ฐ”์œผ๋ฏ€๋กœ ์˜ต์…”๋„์„ ๋ฒ—๊ธด ๊ฐ’์„ ๋‚ด๊ณ  ์ข…๋ฃŒํ•œ๋‹ค.

2์˜ ์ฝ”๋“œ๋Š” ์ธ์ž๋กœ nil์ด ๋“ค์–ด๊ฐ”์œผ๋ฏ€๋กœ ๊ทธ๋Œ€๋กœ ์ข…๋ฃŒํ•œ๋‹ค.

Last updated

Was this helpful?