問題タブ [reactive-extensions-js]

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 に答える
3188 参照

c# - IObservable のアイテムを更新/追加するにはどうすればよいですか動的に?

オブジェクトをフィードし続けたいオブザーバブルコレクションがあり、誰かがサブスクライブした後でもオブザーバーに到達する必要があります(もちろん、これがオブザーバブルの主な目的です)。どうすればいいのですか?

次のプログラムでは、サブスクリプションが発生した後、オブザーバーに到達する必要があるさらに 3 つの数値をフィードしたいと考えています。どうすればいいですか?

IObservable<int>メソッドを実装して使用することにより、独自の Observable クラスを実装するルートを経由したくありませんPublishか? これを達成する他の方法はありますか?

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

system.reactive - Rx Publish() が XDocuments の IObservable を壊す

IObservable 問題を生成する次の Rx クエリがあります。これは Publish() では機能しないため、サブスクライバーの数が増加するとメモリ負荷も増加します。

そのような Observable を作成するより良い方法はありますか?

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

system.reactive - 1つのサブジェクトを使用して、完全に異なるイベントストリームを伝播します

1つのサブジェクトを介してすべての異なるイベントストリームをプロキシする必要があります。

私はこのコードを思いついた:

出力を得ました:

期待される出力:

イベントのbar場合、それは魅力のように機能します。onNextエラーが発生するとすぐにonError関数が呼び出され、イベントストリームが終了します。しかし、私はそれをのために動作させることができませんonComplete

完全な通知が発生するたびに、それが呼び出されますが、サブスクライバーハンドラーが呼び出されるRx.Observable.empty()ことはありません。onComplete代わりに、onNextハンドラーを呼び出します。

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

c# - Observable.While メソッドと Observable.Prune メソッドが Microsoft.Phone.Reactive 名前空間にあるのはなぜですか?

Observable.While および Observable.Prune メソッドが Microsoft.Phone.Reactive 名前空間の一部であることに気付きました。これらのメソッドがすべての OS に適用される必要があるのはなぜですか?

0 投票する
3 に答える
18853 参照

rxjs - オブザーバブルの最後の値を公開する

私はホットオブザーバブル(この場合は主題)を持っています:

新しいサブスクリプションが作成されるたびに、最後に生成された値がすぐに発生するという別のオブザーバブルを作成したいと思います。

したがって、擬似コードでは:

これは大まかに私が望んでいることであり、うまくいくようです。ただし、同じことを実現するには、いくつかの組み込みメカニズムが必要だと思います

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

javascript - RxJS: オブザーバブルと単一オブザーバーの再帰リスト

オブザーバブルの再帰チェーンに問題がありました。

現在バージョン 1.0.10621 の RxJS を使用しており、Rx for jQuery と組み合わせて、最も基本的な Rx 機能が含まれています。

私の問題のシナリオ例を紹介しましょう。特定のキーワードを含むツイート/更新について、 Twitter 検索 API (JSON 応答) をポーリングしています。応答には、フォローアップ要求を生成するために使用する「refresh_url」も含まれます。そのフォローアップ リクエストへの応答には、新しい refresh_url などが含まれます。

Rx.jQuery を使用すると、Twitter 検索 API 呼び出しを監視可能なイベントにすることができます。これにより、onNext が生成されて完了します。私がこれまでに試したことは、onNext ハンドラーに refresh_url を記憶させ、それを onCompleted ハンドラーで使用して、次のリクエスト用に新しいオブザーバブルと対応するオブザーバーの両方を生成することです。このようにして、1 つのオブザーバブル + オブザーバーのペアが、もう一方のペアに無期限に続きます。

このアプローチの問題は次のとおりです。

  1. フォローアップのオブザーバブル/オブザーバーは、前任者がまだ破棄されていないときにすでに生きています。

  2. 現在生きているオブザーバーへの有効な参照を維持するために、多くの厄介な簿記を行う必要があります。実際には、そのうちの2つが存在する可能性があります。(1 つは onCompleted にあり、もう 1 つはそのライフサイクルの別の場所にあります) もちろん、この参照は、オブザーバーの購読を解除/破棄するために必要です。簿記の代わりに、私の例で行ったように、「まだ実行中ですか?」ブール値を使用して副作用を実装することです。

コード例:

リクエストからツイートまで、オブザーバブル/オブザーバーの二重層に惑わされないでください。私の例は、主に最初の層、つまり Twitter からのデータの要求に関するものです。この問題を解決するために、2 番目の層 (応答をツイートに変換する) が最初の層と 1 つになることができれば、それは素晴らしいことです。でも、それは全くの別物だと思います。今のところ。

Erik Meijer は私に Expand 演算子を指摘し (以下の例を参照)、代替としてJoin パターンを提案しました。

これは、LINQPad にコピーして貼り付けることができます。シングルトンのオブザーバブルを想定し、最終的なオブザーバーを 1 つ生成します。

だから私の質問は次のとおりです:RxJSで最も優れた展開トリックを行うにはどうすればよいですか?

編集:
展開演算子は、おそらくこのスレッドに示されているように実装できます。しかし、ジェネレーターが必要になります(そして、私は JS < 1.6 しか持っていません)。
残念ながら、RxJS 2.0.20304-betaは Extend メソッドを実装していません。

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

jquery - jqGrid および Rx Reactive JavaScript 拡張機能

以下の構文を使用して、jqGrid で onSelectRow イベントの Observable を作成しようとしています。

何も起こっていないようです。ほとんどの例は、ドキュメント内のクリックなどの単純なイベントにバインドします。複雑な実装例が見つかりません。これはどのように達成できますか?

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

javascript - Observable.Interval の RxJS 複数サブスクリプション

RxJSの次のような解決策はありますか? Rx の異なるスレッドでサブスクライバーの OnNexts を呼び出すことは可能ですか?

PS私の最初の素朴なアプローチ(CoffeeScriptで)は明らかに失敗しました:

2 番目のサブスクリプションは 35 秒間何も返さない、など

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

visual-studio-2010 - アセンブリが見つかりません - System.Reactive.Debugger

Visual Studio 2010 Express をインストールしてから、Reactive Extensions 2.0 をインストールしました。デバッグ モードでアプリを起動すると、例外に続いてリアクティブ拡張機能が使用されているコードの一部がスローされます。

問題は、この dll (System.Reactive.Debugger) がどこにも見つからないことです。

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

javascript - rx javascript 定期イベントは、最初に処理されるまで無視します

RX for javascript ライブラリの目的を逃したのかもしれませんが、このシナリオをうまく処理できるはずです。

オブザーバブルを通じて定期的なイベントを生成したいと思います。サブスクライバーは最初のイベントを受け取り、ajax リクエストを行う必要があります。このイベントが処理されている間の他のイベントは無視する必要があります。完了後、オブザーバーは次に生成されたイベントを受け取る必要があります。

助言がありますか?どうもありがとう。