RxSwift 操作符 (deferred)

deferred

Deferred.swift:
Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes.

直到订阅发生的时候,才会创建序列,起到一个延迟创建的作用,看似订阅的都是同一个Observable,其实每次都是订阅了一个新的Observable.

let ob = Observable<Int>.deferred { () -> Observable<Int> in
    let ob1 = Observable<Int>.create({ ov in
        ov.onNext(1)
        ov.onNext(2)
        ov.onCompleted()
        return Disposables.create()
    })
    return ob1
}
ob.subscribe(onNext: { int in
    print(int)
}).disposed(by: bag)

输出:
1
2

猜你喜欢

转载自blog.csdn.net/weixin_38318852/article/details/80335048