collect 는 업스트림 Publisher가 방출하는 여러개의 값을 ‘배열’로 모아서 한번에 방출하는 Operator에요.
두 가지 형태의 collect가 있어요
collect()
: Publisher가 완료되기전까지 발행된 모든 값을 배열에 모아서 한 번에 발행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]