iOS/Combine

사용자 정의(custom) 구독자(subscriber) 만들기

까칠코더 2023. 5. 10. 13:16
반응형
  • 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)

 

 

반응형