如果有
let myValue = BehaviorSubject(value: 30)
myValue.subscribe(onNext: {
print($0)
}, onError: { error in
print(error)
}, onCompleted: {
print("Completed")
}, onDisposed: {
print("Disposed")
}).disposed(by: bag)
myValue.onNext(33)
myValue.onNext(200)
如上所述,我可以使用onNext
添加更多值。但是如果我改用
let myValue2 = BehaviorSubject.of(1, 2, 3, 4, 5)
然后onNext
不再起作用。为什么?是因为onNext
仅适用于具有单个值的observables
吗?
如果查看在定义public static func ObservableType.of(_:)
的Sequence.swift文件中,您将看到该函数返回一个Observable,而不是BehaviorSubject。
所有ObservableType
都具有此功能,并且BehaviorSubject
是可观察的类型,但是对所有它们返回相同的结果。