애플에서 만든 비동기 처리 프레임워크
코드
import Foundation
import Combine
// PassthroughSubject
let subTest1 = PassthroughSubject<String, Never>()
subTest1.send("Hello 1")
let subscription = subTest1.sink { value in
print("sub 1 received value: \(value)")
}
subTest1.send("Hello 1")
subTest1.send("World 1")
// subTest1.value - * 남아 있는 데이터가 없음 *
// CurrentValueSubject
let subTest2 = CurrentValueSubject<String, Never>("기존에 가지고있던 초기의 value")
subTest2.send("Hello 2")
let subscription2 = subTest2.sink { value in
print("sub 2 received value: \(value)")
}
subTest2.send("Hello 2")
subTest1.send("World 2")
subTest2.value
보이는 것처럼 PassthroughSubject에서는 전달하고 나서 아무런 value를 남기지 않으며, sink전에 데이터를 전송해도 받지 않는다.
관련 문서 및 사이트 https://developer.apple.com/documentation/combinehttps://brunch.co.kr/@tilltue/65
https://medium.com/harrythegreat/swift-combine-%EC%9E%85%EB%AC%B8%ED%95%98%EA%B8%B0-%EA%B0%80%EC%9D%B4%EB%93%9C-1-525ccb94af57
https://icksw.tistory.com/268