RxSwift-谁是观察员?

时间:2018-10-18 11:24:21

标签: swift observable

我最近才刚开始学习Rxswift。从那以后,有一个问题一直困扰着我。以以下代码段为例:

class MyClass {
    var v = Variable("")
    var bag = DisposeBag()
    func subscribe() {
        let ob = v.asObservable()
        ob.subscribe(onNext: { (value) in
            print("Value changed: " + value)
        }).disposed(by: bag)
    }
}

让我感到困扰的是,在 subscribe()方法的情况下,真正的观察者在哪里?在对象方面,这里有 ob ,它充当可观察对象,但是我在任何地方都看不到观察者对象。

有人可以让我高兴吗?

1 个答案:

答案 0 :(得分:0)

上面示例中的观察者实际上是您为subscribe(onNext:)函数提供的闭包

当然,闭包保留的时间取决于DisposeBag的生存期:MyClass实例死亡时,bag死亡,因此闭包死亡。因此,您可能会发现有人称MyClass实例为“观察者”。