Skip to content

코드관련 질문이 있습니다! #1

Description

@kimscastle

저도 코드레벨에서 코드를 뜯어보고있는데 여쭤보고싶은게있어서 댓글남깁니다!
코드 뜯어보는 레퍼런스가 너무 없었는데 좋은글 감사드립니다!
제가 여쭤보고싶은부분은 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를 찍어봐도 해당메서드가 불리는데 혹시 이부분관련해서 제가 생각하는게 맞는지 아니라면 어느부분에서 틀렸는지 여쭤봐도 될까요!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions