2017-10-23 8 views
0

私はrxSwiftの初心者です。私は Observable.ofにより観察作成し、少なくとも3イベントを受信しUTILRxswiftどのような違いがありますかObservable.ofと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) 

が放出されていないObservable.createいくつかの相違点を発見しました。このようにして、観察者は決して放出されなかった。 でも:

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

しかし、私はこのように作成します。 Observerは2つの要素しか持っていなくても常に放出されます。 私はどのような違いがわかりません。

おかげで、

答えて

1

主な違いは、ofが同様に完了したイベントを送信していることです。以下の例を確認すると、2番目の「完了」が呼び出されません。

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") 
    }) 
関連する問題