collect 는 업스트림 Publisher가 방출하는 여러개의 값을 ‘배열’로 모아서 한번에 방출하는 Operator에요.

기능

두 가지 형태의 collect가 있어요

  1. collect() : Publisher가 완료되기전까지 발행된 모든 값을 배열에 모아서 한 번에 발행
  2. collect(_:) : Publisher의 값을 지정한 수만큼 배열로 모아서 발행.

사용

[1,2,3,4,5].publisher
  .collect()
  .sink { value in
    print(value)
  }
  .store(in: &cancellables)
  
  
// 결과
[1, 2, 3, 4, 5]
[1,2,3,4,5].publisher
  .collect(2)
  .sink { value in
    print(value)
  }
  .store(in: &cancellables)
  
  
// 결과
[1, 2]
[3, 4]
[5]