- Learning RxJava
- Thomas Nield
- 236字
- 2021-07-02 22:22:58
startWith()
For a given Observable<T>, the startWith() operator allows you to insert a T emission that precedes all the other emissions. For instance, if we have an Observable<String>that emits items on a menu we want to print, we can use startWith() to append a title header first:
import io.reactivex.Observable;
public class Launcher {
public static void main(String[] args) {
Observable<String> menu =
Observable.just("Coffee", "Tea", "Espresso", "Latte");
//print menu
menu.startWith("COFFEE SHOP MENU")
.subscribe(System.out::println);
}
}
The output of the preceding code snippet is as follows:
COFFEE SHOP MENU
Coffee
Tea
Espresso
Latte
If you want to start with more than one emission, use startWithArray() to accept varargs parameters. If we want to add a divider between our header and menu items, we can start with both the header and divider as emissions:
import io.reactivex.Observable;
public class Launcher {
public static void main(String[] args) {
Observable<String> menu =
Observable.just("Coffee", "Tea", "Espresso", "Latte");
//print menu
menu.startWithArray("COFFEE SHOP MENU","----------------")
.subscribe(System.out::println);
}
}
The output of the preceding code snippet is as follows:
COFFEE SHOP MENU
----------------
Coffee
Tea
Espresso
Latte
The startWith() operator is helpful for cases like this, where we want to seed an initial value or precede our emissions with one or more emissions.
- Flask Web全棧開發實戰
- Java多線程編程實戰指南:設計模式篇(第2版)
- Learning Cython Programming
- 軟件架構設計:大型網站技術架構與業務架構融合之道
- 碼上行動:零基礎學會Python編程(ChatGPT版)
- C語言從入門到精通(第4版)
- Reactive Programming With Java 9
- JS全書:JavaScript Web前端開發指南
- Teaching with Google Classroom
- Linux C編程:一站式學習
- Visual Studio Code 權威指南
- Windows Phone 8 Game Development
- C陷阱與缺陷
- OpenCV 3計算機視覺:Python語言實現(原書第2版)
- 零基礎學HTML+CSS