RxJava操作符 ~ share

Rx的share操作符可以让多个Subscriber共享一个Observable发送的数据,举个例来说明:

    @Test
    public void multicastingShare() {
        final Observable<Integer> sharedSource = Observable.range(1, 10)
                .doOnSubscribe(dummy -> System.out.println("subscribed"))
                .share();

        // split by some criteria
        final Observable<String> oddItems = sharedSource
                .filter(n -> n % 2 == 1)
                .map(odd -> "odd: " + odd)
                .doOnNext(System.out::println);

        final Observable<String> evenItems = sharedSource
                .filter(n -> n % 2 == 0)
                .map(even -> "even: " + even)
                .doOnNext(System.out::println);

        // recombine the individual streams at some point
        Observable.concat(oddItems, evenItems)
                .subscribe(result -> System.out.println("result: " + result));
    }

你可能感兴趣的:(RxJava,rxjava,java,android)