코드관련 질문이 있습니다!
kimscastle opened this issue · comments
저도 코드레벨에서 코드를 뜯어보고있는데 여쭤보고싶은게있어서 댓글남깁니다!
코드 뜯어보는 레퍼런스가 너무 없었는데 좋은글 감사드립니다!
제가 여쭤보고싶은부분은 asObservable관련부분인데요
create를 했을때 반환되는 객체가 AnonymousObservable이고
return Disposables.create(
self.asObservable().subscribe(observer),
disposable
)
해당코드에서 self가 AnonymousObservable일때
asObservable이라는 메서드를 ObservableType의 메서드가 실행되었다고 적어주셨는데
AnonymousObservable -> Producer -> Observable -> ObservableType
로 상속및 채택관계가 정의되어있을때
Observable자체에 asObservable이 정의되있습니다
그러면 기본 구현 메서드인
extension ObservableType {
/// Default implementation of converting `ObservableType` to `Observable`.
public func asObservable() -> Observable<Element> {
// temporary workaround
//return Observable.create(subscribe: self.subscribe)
Observable.create { o in self.subscribe(o) }
}
}
가 아닌 Observable의
public func asObservable() -> Observable<Element> { self }
가 실행되어야하는게 아닌가라는 의문이 들었습니다
실제로 bp를 찍어봐도 해당메서드가 불리는데 혹시 이부분관련해서 제가 생각하는게 맞는지 아니라면 어느부분에서 틀렸는지 여쭤봐도 될까요!