【问题标题】:When can I use onNext in RxSwift我什么时候可以在 RxSwift 中使用 onNext
【发布时间】:2020-01-03 10:53:28
【问题描述】:

如果我有

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

【问题讨论】:

  • BehaviorSubject(value: 30) - 创建 BehaviorSubject, BehaviorSubject.of(1, 2, 3, 4, 5) - 创建 Observable,observable 没有 onNext
  • 啊,谢谢。但是,如果它是一个 Observable,为什么它被称为 BehaviorSubject 呢?
  • 还是ObservableType,看文档

标签: swift rx-swift behaviorsubject


【解决方案1】:

如果您查看定义了public static func ObservableType.of(_:) 的文件 Sequence.swift,您会看到该函数返回的是 Observable,而不是 BehaviorSubject。

所有ObservableTypes 都有这个函数,BehaviorSubject 是一个 Observable 类型,但它对所有的返回相同。

【讨论】:

    猜你喜欢
    • 2011-02-24
    • 2016-10-10
    • 2016-12-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    • 1970-01-01
    • 2011-09-28
    • 2012-07-09
    相关资源
    最近更新 更多