Fail

μ œλ„€λ¦­ ꡬ쑰체 | νŠΉμ • μ—λŸ¬μ™€ ν•¨κ»˜ μ¦‰μ‹œ μ’…λ£Œν•˜λŠ” Publisher

두 개의 μ΄λ‹ˆμ…œλΌμ΄μ €λ₯Ό μ œκ³΅ν•œλ‹€.

  • init(error:)

    • Error ν”„λ‘œν† μ½œμ„ μ±„νƒν•˜λŠ” 값을 error μΈμžμ— λ„˜κ²¨μ£Όμ–΄ ν•΄λ‹Ή μ—λŸ¬λ₯Ό λ‚΄κ³  μ¦‰μ‹œ μ’…λ£Œν•˜λŠ” Publisherλ₯Ό λ§Œλ“ λ‹€.

  • init(outputType:failure:)

    • Error ν”„λ‘œν† μ½œμ„ μ±„νƒν•˜λŠ” 값을 failure μΈμžμ— λ„˜κ²¨μ£Όμ–΄ ν•΄λ‹Ή μ—λŸ¬λ₯Ό λ‚΄κ³  μ¦‰μ‹œ μ’…λ£Œν•˜λŠ” Publisherλ₯Ό λ§Œλ“ λ‹€.

    • outputTypeμ—λŠ” νŠΉμ • Output νƒ€μž…μ„ 가진 Subscriber와 Publisher와 ν•¨κ»˜ λ™μž‘ν•΄μ•Ό ν•  λ•Œ Output νƒ€μž…μ˜ 메타 νƒ€μž…μ„ λ„˜κ²¨μ€€λ‹€.

Justκ°€ νŠΉμ • 값을 λ‚΄λ €μ£Όκ³  μ’…λ£Œν•œλ‹€λ©΄, Fail은 νŠΉμ • μ—λŸ¬μ™€ ν•¨κ»˜ μ¦‰μ‹œ μ’…λ£Œν•œλ‹€.

Fail(error: error)
  .sink(receiveCompletion: { _ in print("Combine Fail Error") }, receiveValue: { })
  .store(in: &cancellables)

// Combine Fail Error

EmtpyλŠ” 값을 내지 μ•ŠμœΌλ―€λ‘œ receiveValue ν΄λ‘œμ €μ—μ„œλŠ” λ™μž‘μ„ 확인할 수 μ—†κ³ , receiveCompletion ν΄λ‘œμ €μ—μ„œ μ’…λ£Œν•˜λŠ” λ™μž‘μ„ 확인할 수 μžˆλ‹€.

RxSwift

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

Observable<Void>.error(error)
  .subscribe(onError: { _ in print("RxSwift Fail Error") })
  .disposed(by: disposeBag)

// RxSwift Fail Error

ReactiveSwift

init(error:) μ΄λ‹ˆμ…œλΌμ΄μ €λ₯Ό μ‚¬μš©ν•˜μ—¬ κ΅¬ν˜„ν•  수 μžˆλ‹€.

SignalProducer<Void, Error>(error: error)
  .startWithFailed { _ in print("ReactiveSwift Fail Error") }

// ReactiveSwift Fail Error

Combineκ³Ό 같이 값을 내지 μ•ŠμœΌλ―€λ‘œ startWithValues λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ λ™μž‘μ„ 확인할 수 μ—†κ³ , startWithFailed λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μ—λŸ¬λ₯Ό λ‚΄λŠ” λ™μž‘μ„ 확인할 수 μžˆλ‹€.

μ°Έκ³ 

ReactiveX - Operators - Throw

Last updated