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