【问题标题】:Rxswift What difference between Observable.of and Observable<String>.createRxswift Observable.of 和 Observable<String>.create 有什么区别
【发布时间】:2017-10-23 09:26:54
【问题描述】:

我是 rxSwift 的新手。我在创建 Observable 时发现了一些差异 Observable.ofObservable&lt;String&gt;.create

    Observable<String>.create { observer in

    observer.onNext("1")

    observer.onNext("2")

    return Disposables.create()
    }.take(3).toArray().subscribe(onNext: { (item) in
        print(item)
    }).disposed(by: disposeBag)

未发出的 util 收到至少 3 个事件。以这种方式观察者永远不会发射。 但是:

    Observable.of("1", "2")
    // 2
    .take(3).toArray()
    .subscribe(onNext: {
        print($0) })
    .disposed(by: disposeBag)

但是当我通过这种方式创建时。 即使我只有 2 个元素,观察者也总是发出。 我不知道有什么区别。

【问题讨论】:

    标签: rx-swift


    【解决方案1】:

    主要区别在于of 也发送完成事件。您可以查看下面的示例,不会调用第二个“完成”。

    你必须在observer.onNext("2")之后写observer.onCompleted()才能有相同的逻辑。

    Observable.of("1", "2").subscribe(onCompleted: {
        print("completed")
    })
    
    Observable<String>.create { observer in
            observer.onNext("1")
            observer.onNext("2")
            return Disposables.create()
        }
        .subscribe(onCompleted: {
            print("completed")
        })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-18
      • 2019-07-03
      • 2016-11-09
      • 2016-03-26
      • 1970-01-01
      相关资源
      最近更新 更多