share은 업스트림 Publisher로부터 발행되는 데이터 스트림을 여러 Subscriber들이 공유할 수 있게하는 Operator에요.
하나의 데이터 소스로부터 오는 데이터를 여러 곳에서 사용할 수 있고, 각 Subscriber들은 동일한 결과를 받아요.
let expensivePublisher = PassthroughSubject<String, Never>()
let sharedPublisher = expensivePublisher.share()
let subscriber1 = sharedPublisher
.sink { value in
print("subscriber1 value: \\(value)")
}
let subscriber2 = sharedPublisher
.sink { value in
print("subscriber2 value: \\(value)")
}
expensivePublisher.send("Data from network")
// 결과 (순서보장 x)
subscriber2 value: Data from network
subscriber1 value: Data from network