RxSwift의 메모를 읽었습니다.
버전: RxSwiftv6.1
저장소 URL: https://github.com/ReactiveX/RxSwift
ObservableConvertibleType
ObservableConvertibleType.swift
/// Type that can be converted to observable sequence (`Observable<Element>`).
public protocol ObservableConvertibleType {
/// Type of elements in sequence.
associatedtype Element
/// Converts `self` to `Observable` sequence.
///
/// - returns: Observable sequence that represents `self`.
func asObservable() -> Observable<Element>
}
associatedtype
Element
ObservableType
협의에 부합ObservableType
ObservableType.swift
public protocol ObservableType: ObservableConvertibleType {
func subscribe<Observer: ObserverType>(_ observer: Observer) -> Disposable where Observer.Element == Element
}
해당
ObservableConvertibleType
및 해당subscribe
방법Observable<Element>
클래스, 〜Relay
클래스, SubjectType
프로토콜 등 RxSwift를 실제 이용할 때 자주 사용하는 ObservableObserverType
ObserverType.swift
public protocol ObserverType {
associatedtype Element
func on(_ event: Event<Element>)
}
Event<Element>
on(_ event: Event<Element>)
의 방법이 있다Event<Element>
는 정의next
,error
,completed
이벤트를 가리키는 enum상술한 등장인물의 관계도
다음은 자신이 사용한 간단하고 알기 쉬운 요약 관계도(UML에 완전히 부합되지 않음)
그렇군요. Observable는subscribe를 할 때
ObserverType
를 매개 변수로 합니다.ObserverType
재생 이벤트on
방법이 있기 때문에 subscribe
재생 이벤트를 사용할 수 있음ObserverType
이렇게 하면'이벤트 흐름'처리가 가능하겠죠.조작자 Just 봐봐.
조작원은 Observable를 받은 후 새로운 Observable를 생성하고 되돌아오는 함수를 가리킨다. 여기서 Element
Next
이 이벤트에서 재생된 값just
을 받아들인 조작원을 보고 싶다.Just.swift
extension ObservableType {
public static func just(_ element: Element) -> Observable<Element> {
Just(element: element)
}
}
보아하니just 운영자가 ObservableType
의extension으로 선포된 것 같다또한just사업자가 되돌아오고 있음
Just
류 실례를 볼 수 있다이어서 저는
Just
반을 보러 가고 싶습니다.Just.swift
final private class Just<Element>: Producer<Element> {
private let element: Element
init(element: Element) {
self.element = element
}
override func subscribe<Observer: ObserverType>(_ observer: Observer) -> Disposable where Observer.Element == Element {
observer.on(.next(self.element))
observer.on(.completed)
return Disposables.create()
}
}
여기 just 운영자가 진행 중인 처리가 구체적으로 적혀 있는 것 같아요.Just 클래스 자체는
Producer<Element>
클래스를 계승했고, Just 클래스의 subscribe
방법은 Producer<Element>
클래스의 subscribe
방법으로 완성되었다.참고로
Producer<Element>
류는 Observable<Element>
류를 계승했고 Observable<Element>
류는 ObservableType
류에 부합subscribe
협정에 부합되었다.Producer<Element> → Observable<Element> → ObservableType
ObserverType
방법은 ObserverType
를 매개 변수로 하는 방법입니다. 이on
는 재생 이벤트ObserverType
방법이 있기 때문에subscribe에서 받아들인 매개 변수on
를 이용하여 이벤트를 재생할 수 있습니다.subscribe에서 방송되는 활동은 선언 전에 쓴 바와 같이 다음과 같다.
observer.on(.next(self.element))
observer.on(.completed)
먼저 next
이벤트에서 Element을 재생한 다음completed
진행just사업자
next
가 이벤트 중 Element을 재생한 후 completed
Observable를 생성한 사업자로 거슬러 올라갈 수 있다이번에 RxSwift를 대충 읽어봤는데 잘못 읽거나 수정점이 있으면 지적해 주시면 좋을 것 같아요.
Reference
이 문제에 관하여(RxSwift의 메모를 읽었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/roku/articles/6be0a61ed61924텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)