Rxswift Observable.of 和 Observable.create 有什么区别

2024-01-03

我是 rxSwift 的新手。我在创建 Observable 时发现了一些区别Observable.of and Observable<String>.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 个元素,观察者也总是发出信号。 我不知道有什么区别。


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

你必须写observer.onCompleted() after observer.onNext("2")它为了具有相同的逻辑。

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")
    })
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rxswift Observable.of 和 Observable.create 有什么区别 的相关文章

随机推荐