Empty는 값을 발행하지 않고 선택적으로 즉시 스트림을 종료할 수 있는 퍼블리셔에요.
completeImmediately
파라미터를 통해서 구독 직후에 완료 이벤트를 발행할 것인지 결정할 수 있어요.눈여겨 봐야할 것은 completeImmediately
파라미터에요.
이 파라미터는 기본값으로 true로 설정되어 있지만 false로 설정할 수 있어요.
false로 설정하면 완료 이벤트가 발행되지 않아요.
completeImmediately: true
let emptyPublisher = Empty<Int, Never>(completeImmediately: true)
emptyPublisher
.sink { completion in
switch completion {
case .finished:
print("finshed")
case .failure(let customError):
print("error occured : \\(customError)")
}
} receiveValue: { value in
print("value received: \\(value)")
}
// 결과
finshed
프로그램 종료 (exit 0)
completeImmediately: false