如果您希望 Observable 在開始正常發射項目之前,先發射特定的項目序列,請對其應用 StartWith 操作符。
(另一方面,如果您想將項目序列附加到 Observable 正常發射的項目的末尾,則需要 Concat 操作符。)
RxClojure 將此操作符實作為 cons
。它接受一個項目和一個 Observable 作為參數,並將該項目附加到 Observable 發射的項目之前,作為其自身的 Observable 序列。
RxCpp 將此操作符實作為 start_with
。它接受一個 Observable 和一個或多個項目作為參數,並將這些項目按照參數列表中給定的順序附加到 Observable 發射的項目之前,作為其自身的 Observable 序列。
RxGroovy 將此操作符實作為 startWith
。
您可以將要附加到 Observable 序列的值以單個 Iterable 的形式或作為一到九個函數參數的序列傳遞給 startWith
。
def myObservable = Observable.from([1, 2, 3]); myObservable.startWith(-3, -2, -1, 0).subscribe( { println(it); }, // onNext { println("Error: " + it.getMessage()); }, // onError { println("Sequence complete"); } // onCompleted );
-3 -2 -1 0 1 2 3
startWith(Iterable)
startWith(T)
(還有接受最多九個單獨項目的版本)您也可以將一個 Observable 傳遞給 startWith
,它會將該 Observable 的發射附加到來源 Observable 的發射之前,以形成它自己的發射集。這是一種反向的 Concat 操作。
startWith(Observable)
RxJava 將此操作符實作為 startWith
。
您可以將要附加到 Observable 序列的值以單個 Iterable 的形式或作為一到九個函數參數的序列傳遞給 startWith
。
startWith(Iterable)
startWith(T)
(還有接受最多九個單獨項目的版本)您也可以將一個 Observable 傳遞給 startWith
,它會將該 Observable 的發射附加到來源 Observable 的發射之前,以形成它自己的發射集。這是一種反向的 Concat 操作。
startWith(Observable)
RxJS 將此操作符實作為 startWith
。它接受可變數量的函數參數,並將每個參數視為一個項目,它會按照參數列表中給定的順序將其附加到結果的 Observable 序列之前。
startWith
在以下發行版中找到
rx.js
rx.all.js
rx.all.compat.js
rx.compat.js
rx.lite.js
rx.lite.compat.js
RxKotlin 將此操作符實作為 startWith
。
您可以將要附加到 Observable 序列的值以單個 Iterable 的形式或作為一到九個函數參數的序列傳遞給 startWith
。
您也可以將一個 Observable 傳遞給 startWith
,它會將該 Observable 的發射附加到來源 Observable 的發射之前,以形成它自己的發射集。這是一種反向的 Concat 操作。
Rx.NET 將此操作符實作為 StartWith
。它接受一個項目陣列,它會按照陣列中出現的順序將其附加到結果的 Observable 序列之前,然後再發射來源 Observable 的項目。
RxPHP 將此操作符實作為 startWith
。
將一個值附加到 observable 序列之前,使用一個訊號值參數來附加。
//from https://github.com/ReactiveX/RxPHP/blob/master/demo/startWith/startWith.php $source = \Rx\Observable::of(2) ->startWith(1); $subscription = $source->subscribe($stdoutObserver);
Next value: 1 Next value: 2 Complete!
RxPHP 還有一個操作符 startWithArray
。
將一個值序列附加到 observable 序列之前,使用一個要附加的值的陣列參數。
//from https://github.com/ReactiveX/RxPHP/blob/master/demo/startWith/startWithArray.php $source = \Rx\Observable::of(4) ->startWithArray([1, 2, 3]); $subscription = $source->subscribe($stdoutObserver);
Next value: 1 Next value: 2 Next value: 3 Next value: 4 Complete!
RxPY 將此操作符實作為 start_with
。它接受一個項目陣列,它會按照陣列中出現的順序將其附加到結果的 Observable 序列之前,然後再發射來源 Observable 的項目。
Rx.rb 將此操作符實作為 start_with
。它接受一個項目陣列,它會按照陣列中出現的順序將其附加到結果的 Observable 序列之前,然後再發射來源 Observable 的項目。
RxScala 使用 +:
實現此操作符。它接受一個項目和一個 Observable 作為參數,並將該項目附加到 Observable 發射的項目之前,作為其自身的 Observable 序列。