반응형
- Int 값을 최대 2개만 수신하는 사용자 정의 구독자
class IntSubscriber: Subscriber {
typealias Input = Int
typealias Failure = Never
func receive(subscription: Subscription) {
subscription.request(.max(2))
}
func receive(_ input: Int) -> Subscribers.Demand {
print("Received value", input)
return .none
}
func receive(completion: Subscribers.Completion<Never>) {
print("Received completion", completion)
}
}
// How to use
let publisher = (1...6).publisher
let subscriber = IntSubscriber()
publisher.subscribe(subscriber)
- Int 값을 제한 없이 수신하는 사용자 정의 구독자
class IntSubscriber: Subscriber {
typealias Input = Int
typealias Failure = Never
func receive(subscription: Subscription) {
subscription.request(.max(2))
}
func receive(_ input: Int) -> Subscribers.Demand {
print("Received value", input)
return .unlimited
}
func receive(completion: Subscribers.Completion<Never>) {
print("Received completion", completion)
}
}
// How to use
let publisher = (1...6).publisher
let subscriber = IntSubscriber()
publisher.subscribe(subscriber)
반응형
'iOS > Combine' 카테고리의 다른 글
Background, Foreground 진입시 처리 (0) | 2024.01.04 |
---|---|
PassthroughSubject vs CurrentValueSubject (1) | 2023.12.01 |
Throttle과 Debounce의 차이점 (0) | 2023.05.31 |
PassthroughSubject (0) | 2023.05.31 |
Combine with Timer (0) | 2023.05.09 |
Combine과 Property Wrapper를 이용해서 UserDefault 쉽게 사용하기 (0) | 2023.05.08 |
UIKit(UIControl) + Combine을 위한 Extension (0) | 2022.11.09 |
MVVM with Combine Tutorial for iOS (1) | 2019.09.05 |