問題タブ [reactivex]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
5035 参照

rx-java - 放出されたアイテムを失うことなく Observable を一時停止するにはどうすればよいですか?

私はObservable毎秒ティックを発する を持っています:

この Observable を一時停止して数値の発行を停止し、必要に応じて再開したいと思います。

いくつかの落とし穴があります:

  • ObservableJavadoc によると、intervalオペレーターはバックプレッシャーをサポートしていません
  • backpressure に関するRxJava wiki には、 backpressureのフロー制御の代替手段としての Callstack ブロッキングに関するセクションがあります。

生産性の高い Observable を処理するもう 1 つの方法は、コールスタックをブロックすることです (生産性の高い Observable を管理するスレッドを停止します)。これには、Rx の「リアクティブ」でノンブロッキング モデルに反するという欠点があります。ただし、問題のある Observable が安全にブロックできるスレッド上にある場合、これは実行可能なオプションになる可能性があります。現在、RxJava はこれを容易にするためのオペレーターを公開していません。

intervalObservableを一時停止する方法はありますか? または、バックプレッシャーをサポートする独自の「刻む」Observableを実装する必要がありますか?

0 投票する
2 に答える
1353 参照

rx-java - ReactiveX がタイムアウト後に null またはセンチネル値を発行する

一定期間アイテムを放出しなかった後Observable、単一の (またはセンチネル値) を放出するようにソースを変換するクリーンな方法を探しています。null

たとえば、ソースオブザーバブルが放出1, 2, 3し、放出する前に10秒間放出を停止する場合4, 5, 6、放出されるアイテムを1, 2, 3, null, 4, 5, 6.

使用例は、表示された値がダッシュに変わる場合、-またはN/A最後に発行された値が古い/古い場合に UI に値を表示するためです。

timeoutオペレーターを調べましたObservableが、タイムアウトが発生すると終了しますが、これは望ましくありません。

RxJava を使用します。

0 投票する
2 に答える
1154 参照

javascript - チェーンされた AJAX 呼び出しから一連の Rx Observables を生成できますか?

技術的背景

Web ブラウザーで jQuery を使用して、ログから一連のエントリを返す API を呼び出しています。

API リクエストは次の 2 つのパラメータを取ります。

  • offset_timestamp: 必要な最も早いエントリを指定する整数
  • limit: 返すレコード数を指定する整数

リクエストとレスポンスの例

単純な jQuery + コールバックを使用していた場合、AJAX 呼び出しを再帰的に連鎖させる必要があると思います。次のようなもの:

flatMap()当然のことながら、すべてのエントリのシーケンスを取得するために使用できるように、Observable のシーケンス (それぞれがエントリのバッチを 1 つ保持) を使用したいと考えています。

質問

jQuery 呼び出しから Observable を作成する場合、たとえばRx.Observable.fromPromise(jQuery.ajax({...}))、RxJS を使用してresponse.next_timestamp、後続の呼び出しのパラメーターで前の呼び出しの値を使用して、これらの Observable を任意の数だけチェーンすることは可能ですか?

0 投票する
0 に答える
430 参照

android - RxJava は観測可能な onError を再作成します

したがってform、検証してサーバーに送信するすべてのデータを保持するモデルがあります。できるだけシンプルにしましょう。そうしないとisFormValid、API リクエストが.Observable.errr(throwable)onError()subscriber

submitForm()さて、ユーザーが無効なデータを入力しonErrorsubscriberとしましょうonComplete。次に、ユーザーが有効なデータを入力するとsubmitForm()、再度呼び出されます。

ここに問題があります - 2 番目のsubmitForm()呼び出しでは何も起こりません! 少なくともflatMap Func12 番目flatMap Func2は呼び出されません。なんで?私は何を間違っていますか?それは建築上の欠陥ですか?

0 投票する
1 に答える
946 参照

java - ラムダ式を使用せずに Java 6 で ReactiveX オブザーバブルを作成する

監視可能なオブジェクト (ReactiveX) を作成する方法の例を見つけました。

しかし、私のプロジェクトはラムダ式の Java 8 をサポートしていません。ラムダ式なしで ReactiveX observable を使用する方法の例が見つかりませんでした。

0 投票する
1 に答える
202 参照

java - RxJava で 2 つの大規模なデータセットを結合する

ID で結合する必要がある 2 つの大きなデータセット (数百万のレコード) を処理するために RxJava を使用しています。これら 2 つのデータセットには、必ずしも同じレコードが含まれているとは限りません。ただし、それらは ID でソートされます。

そのためにこの方法を使用できることがわかりましたjoin。以下の実験では「完全結合」を行い、一致するレコードでフィルタリングします。

これは、サンプルの小さなセットでは問題なく機能しますが、大きなセットでは非常に非効率的です。

だから私の質問は次のとおりです:セットがキーでソートされているのを見て、これらのセレクター/ウィンドウ関数を使用して結合を制限できる方法はありますか?

それとも、私はこれを間違った方法で一緒にやっていますか?