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