prefix(while:) 은 while 클로저에서 false를 리턴할 때까지 계속해서 데이터를 발행하게 하는 Operator입니다.
[1, nil, 2, nil, 3, nil, 4, nil, 5].publisher
.prefix(while: { value in
return value != 3 // false일 때까지 계속 re-publish
})
.sink { completion in
print(completion)
} receiveValue: { value in
print(value)
}
.store(in: &cancellables)
// 결과
Optional(1)
nil
Optional(2)
nil
finished