RxJavav1からv2

TechnoLearner

私はRxJava2を学ぼうとしていますが、昨日の午後からRxJavaライブラリのv1からv2に変換しようとして苦労しています...私がしていることに役立つこの関数に出くわしました。私はリアクティブプログラミングパラダイム全体を理解しています。

List<Integer> emitList = ...;
Observable<Integer> observable = Observable.from(emitList);

observable
        .subscribeOn(Schedulers.newThread())
        .parallel((a) -> {
            return a
            .filter((i) -> {
                return i % 2 == 0;
            })
            .doOnNext((xx) -> {
                System.out.println("parallel thread in: " + ThreadUtils.currentThreadName());
                System.out.println("parallel: " + xx);
                ThreadUtils.sleep(10);
                System.out.println("parallel thread out: " + ThreadUtils.currentThreadName());
            });
        },
        Schedulers.io()
        )
        .subscribe(
                (i) -> {
                    System.out.println("onNext thread entr: " + ThreadUtils.currentThreadName());
                    System.out.println(i);
                    System.out.println("onNext thread exit: " + ThreadUtils.currentThreadName());
                },
                (t) -> {
                    t.printStackTrace();
                },
                () -> {
                    System.out.println("onCompleted()");
                }
        );

そして、私が持っている最も遠いのはこれです:

Observable<Integer> observable = ....
observable.subscribeOn(Schedulers.newThread())
        .filter(i -> i % 2 == 0)
        .doOnNext(i -> {
          System.out.println("parallel thread in: " + threadName());
          System.out.println("parallel: " + i);
          Thread.sleep(10);
        })
        .subscribe(
                number -> System.out.println(threadName() + ": " + number),
                throwable -> System.err.println(threadName() + ": " + throwable.toString()),
                () -> System.out.println(threadName() + ": Completed!")

        );

私がやっていることには多くの間違いがあることを私は知っています。最初に、フィルタリングとdoOnNextは並列句の内側にありますが、私の「アプローチ」ではその外側であり、誰が他に何を知っているかを知っています。RxJavaリポジトリでテストを実行しようとしましたが、これに類似するものを特定できませんでした。FlowableとParallelFlowableを見ましたが、私のバージョンで並列処理を実現する方法が見つからないという点で、それらはまったく異なります...ところで何も出力されません。

akarnokd

RxJava 2での並列処理Flowableは、次のものと同じ流暢なAPI設計に関連付けられて使用されますObservable

Flowable<Integer> f = ....
f.subscribeOn(Schedulers.newThread())
    .parallel()                          // <---------------------------------
    .runOn(Schedulers.computation())     // <---------------------------------
    .filter(i -> i % 2 == 0)
    .doOnNext(i -> {
      System.out.println("parallel thread in: " + threadName());
      System.out.println("parallel: " + i);
      Thread.sleep(10);
    })
    .sequential()                        // <---------------------------------
    .subscribe(
            number -> System.out.println(threadName() + ": " + number),
            throwable -> System.err.println(threadName() + ": " + throwable.toString()),
            () -> System.out.println(threadName() + ": Completed!")
    );

    Thread.sleep(10000);

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

koa v1 から v2 への移行

分類Dev

build.gradleファイルからV1(Jar署名)またはV2(完全APK署名)を使用する方法

分類Dev

AWS SDKのv1からv2への移行:WithSubscriber()を正しく実装する方法は?

分類Dev

API V1 から API V2 への Objective-C ドロップボックス SDK の移行

分類Dev

React-trancition-group。.v1から.v2への移行後の移行は機能しません

分類Dev

V2からV3SurveymonkeyAPIに移行する方法

分類Dev

Python:文字列[[k1:v1、k2:v2]、[k3:v3]]からオブジェクトへ

分類Dev

デーモンからのエラー応答:https://registry-1.docker.io/v2/を取得:禁止

分類Dev

docker:デーモンからのエラー応答:Get https://registry-1.docker.io/v2/:proxyconnect tcp:EOF

分類Dev

GoogleエンドポイントV1からV2およびJava7からJava8への移行

分類Dev

DynamoDBからAWSSDK v2を使用したElasticsearchへ?

分類Dev

ServiceBusからの入力としてのAzureFunctions v2 BrokeredMessage

分類Dev

Traefik v2 IngressRouteCRDからDocker以外のサービスへ

分類Dev

Azure CLI v1とv2?

分類Dev

antlr v2からv3文法に変換する方法は?

分類Dev

C#ドライバーv2の更新ドキュメントはドライバーv1から移行します

分類Dev

WorkManagerv1とv2の競合

分類Dev

Dialogflow v2 Beta 1 Update Intent with Python

分類Dev

Java文字列解析-{k1 = v1、k2 = v2、...}

分類Dev

Flutter Android EmbeddingV1とV2の違いは何ですか

分類Dev

AzureFunctionsからAzureData Factory(V2)パイプラインを呼び出す

分類Dev

docker hint: デーモンからのエラー応答: Get https://registry-1.docker.io/v2/: x509: 証明書は有効です

分類Dev

Angularjsv1とv2およびv2のリリース日

分類Dev

In bash how to transform multimap<K,V> to a map of <K, {V1,V2}>

分類Dev

C ++標準はstd :: vector <int> v1、v2について何と言っていますか。std :: distance(v1.begin()、v2.begin())?

分類Dev

Google Cloud Logging:V2 APIでv1エントリを検索しますか?

分類Dev

Google CSE REST API:v1は非推奨ですが、v2はありますか?

分類Dev

v1をv2に変換するAzure関数DotNetStandard'AzureWebJobsServiceBus 'がないか、空です

分類Dev

Chrome拡張機能-マニフェストv2からv3に移行します

Related 関連記事

  1. 1

    koa v1 から v2 への移行

  2. 2

    build.gradleファイルからV1(Jar署名)またはV2(完全APK署名)を使用する方法

  3. 3

    AWS SDKのv1からv2への移行:WithSubscriber()を正しく実装する方法は?

  4. 4

    API V1 から API V2 への Objective-C ドロップボックス SDK の移行

  5. 5

    React-trancition-group。.v1から.v2への移行後の移行は機能しません

  6. 6

    V2からV3SurveymonkeyAPIに移行する方法

  7. 7

    Python:文字列[[k1:v1、k2:v2]、[k3:v3]]からオブジェクトへ

  8. 8

    デーモンからのエラー応答:https://registry-1.docker.io/v2/を取得:禁止

  9. 9

    docker:デーモンからのエラー応答:Get https://registry-1.docker.io/v2/:proxyconnect tcp:EOF

  10. 10

    GoogleエンドポイントV1からV2およびJava7からJava8への移行

  11. 11

    DynamoDBからAWSSDK v2を使用したElasticsearchへ?

  12. 12

    ServiceBusからの入力としてのAzureFunctions v2 BrokeredMessage

  13. 13

    Traefik v2 IngressRouteCRDからDocker以外のサービスへ

  14. 14

    Azure CLI v1とv2?

  15. 15

    antlr v2からv3文法に変換する方法は?

  16. 16

    C#ドライバーv2の更新ドキュメントはドライバーv1から移行します

  17. 17

    WorkManagerv1とv2の競合

  18. 18

    Dialogflow v2 Beta 1 Update Intent with Python

  19. 19

    Java文字列解析-{k1 = v1、k2 = v2、...}

  20. 20

    Flutter Android EmbeddingV1とV2の違いは何ですか

  21. 21

    AzureFunctionsからAzureData Factory(V2)パイプラインを呼び出す

  22. 22

    docker hint: デーモンからのエラー応答: Get https://registry-1.docker.io/v2/: x509: 証明書は有効です

  23. 23

    Angularjsv1とv2およびv2のリリース日

  24. 24

    In bash how to transform multimap<K,V> to a map of <K, {V1,V2}>

  25. 25

    C ++標準はstd :: vector <int> v1、v2について何と言っていますか。std :: distance(v1.begin()、v2.begin())?

  26. 26

    Google Cloud Logging:V2 APIでv1エントリを検索しますか?

  27. 27

    Google CSE REST API:v1は非推奨ですが、v2はありますか?

  28. 28

    v1をv2に変換するAzure関数DotNetStandard'AzureWebJobsServiceBus 'がないか、空です

  29. 29

    Chrome拡張機能-マニフェストv2からv3に移行します

ホットタグ

アーカイブ