compactMap은 한마디로 map Operator + nil 제거 효과를 가지는 Operator에요.
데이터 발행소스에서 Nil 인 데이터를 제거하고 Nil 이 아닌 데이터만 취합하여 map으로 발행하는 Operator에요.
["1", nil, "2", nil, "3", nil, "4", nil, "5"].publisher
.compactMap({ $0 })
.sink(receiveCompletion: { completion in
print(completion)
}, receiveValue: { value in
print(value)
})
.store(in: &cancellables)
// 결과
1
2
3
4
5
finished