Record 는 사전에 정의된 값을 순차적으로 발행하고, 정의된 완료 이벤트를 발행하는 Publisher입니다.
미리 정해진 값을 그대로 발행한다는 점에서 테스트 목적으로 주로 사용돼요.
let recordPublisher = Record<Int, Never>(output: [1,2,3], completion: .finished)
recordPublisher
.sink(receiveCompletion: { completion in
switch completion {
case .finished:
print("finished")
case .failure(let failure):
print(failure)
}
}, receiveValue: { value in
print(value)
})
.store(in: &cancellables)
-- 결과
1
2
3
finished
enum CustomError: Error {
case unknownError
}
let recordPublisher = Record<Int, CustomError>(output: [1,2,3], completion: .failure(.unknownError))
recordPublisher
.sink(receiveCompletion: { completion in
switch completion {
case .finished:
print("finished")
case .failure(let failure):
print(failure)
}
}, receiveValue: { value in
print(value)
})
.store(in: &cancellables)
-- 결과
1
2
3
unknownError