๐๋จ์ผ ๋ฐ์ดํฐ๊ฐ ์๋ ๊ฒฝ์ฐ๋?
์์ ๊ณต๋ถํ just()๋ create()๋ ๋จ์ผ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๋ก ๋ค๋ค๋ค. ๋จ์ผ ๋ฐ์ดํฐ๊ฐ ์๋ ๊ฒฝ์ฐ์๋ fromXXX() ๊ณ์ด ํจ์๋ฅผ ์ฌ์ฉ!!
Integer[] arr = {100,200,300};
Observable<Integer> source = Observable.fromArray(arr);
source.subscribe(System.out::println);
๐int [] ๋ฐฐ์ด ์ฌ์ฉํ๊ธฐ
int[] ๋ฐฐ์ด์ ์ค์ ๋ก ๊ทธ๋๋ก ๋ฃ์ผ๋ฉด ์ฌ๋ฐ๋ฅธ ์คํ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์์. โ toIntegerArray()
๋ฅผ ์ฌ์ฉ
int[] intArray = {400,500,600};
Observable<Integer> source = Observable.fromArray(toIntegerArray(intArray));
source.subscribe(System.out::println);
List<String> names = new ArrayList<>();
names.add("Jerry")
names.add("William")
names.add("Bob")
Observable<String> source = Observable.fromIterable(names);
source.subscribe(System.out::println)
Callable<String> callable = () -> {
Thread.sleep(1000);
return "Hello Callable";
};
Observable<String> source = Observable.fromCallable(callable);
source.subscribe(System.out::println);
*Callable์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํดํ๊ณ Executor ์ธํฐํ์ด์ค์ ์ธ์๋ก ํ์ฉ๋๊ธฐ ๋๋ฌธ์ ์ ์ฌ์ ์ผ๋ก ๋ค๋ฅธ ์ค๋ ๋์์ ์คํ๋๋ ๊ฒ์ ์๋ฏธ.
Future<String> future = Executors.newSingleThreadExecutor().submit(() -> {
Thread.sleep(1000);
return "Hello Future";
});
Observable<String> source = Observable.fromFuture(future);
source.subscribe(System.out::println);
Publisher<String> publisher = (Subscriber<? super String> s) -> {
s.onNext("hello Observable.fromPublisher()");
s.onComplete();
};
Observable<String> source = Observable.fromPublisher(publisher)
source.subscribe(System.out::println);
**Publisher ์ธํฐํ์ด์ค์ ํจํค์ง๋ org.reactivestreams