저도 코드레벨에서 코드를 뜯어보고있는데 여쭤보고싶은게있어서 댓글남깁니다!
코드 뜯어보는 레퍼런스가 너무 없었는데 좋은글 감사드립니다!
제가 여쭤보고싶은부분은 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를 찍어봐도 해당메서드가 불리는데 혹시 이부분관련해서 제가 생각하는게 맞는지 아니라면 어느부분에서 틀렸는지 여쭤봐도 될까요!
저도 코드레벨에서 코드를 뜯어보고있는데 여쭤보고싶은게있어서 댓글남깁니다!
코드 뜯어보는 레퍼런스가 너무 없었는데 좋은글 감사드립니다!
제가 여쭤보고싶은부분은 asObservable관련부분인데요
create를 했을때 반환되는 객체가 AnonymousObservable이고
해당코드에서 self가 AnonymousObservable일때
asObservable이라는 메서드를 ObservableType의 메서드가 실행되었다고 적어주셨는데
AnonymousObservable -> Producer -> Observable -> ObservableType
로 상속및 채택관계가 정의되어있을때
Observable자체에 asObservable이 정의되있습니다
그러면 기본 구현 메서드인
가 아닌 Observable의
가 실행되어야하는게 아닌가라는 의문이 들었습니다
실제로 bp를 찍어봐도 해당메서드가 불리는데 혹시 이부분관련해서 제가 생각하는게 맞는지 아니라면 어느부분에서 틀렸는지 여쭤봐도 될까요!