問題タブ [reactive-programming]

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

c# - ネストされたイベントを使用したIObservableの実行コンテキスト

実行コンテキストのネストされたイベント

IObserver<T>こんにちは。「ネストされたイベント」の実行コンテキストと関連についてもう少し知りたいと思います。

基本的に、linq-to-IEnumerableと比較すると、式ツリーが作成され、ToList()…などを呼び出すと実行されます。たとえば、

これは実行される式にすぎません(実行するときに想定しFirstOrDefaultます)…これは世界でどのように機能しIObservableますか?ほぼ同じように機能すると思います…これについて意見をお聞かせいただければ幸いです…</p>

ある種のイベントコンテナであるイベントがあるので、これは私の本当の質問に関連しています。

座標のContainerEventArgs配列が含まれます…そして、探している特定の座標(centercoordinate)を取得するために、そこで操作を実行する必要があります。中心座標は、私が本当に観察したいものです。これが変更されるたびに、通知を受け取りたいと思います。

Rxを使用しない標準の.Netの方法では、CenterCoordinateの座標変更イベントを取得するために次のようなことを行います。

このような2番目のイベントがあると仮定します。

長い話ですが…今、RXでこれをどのように処理すればよいですか?私がこれまでに持っているのはこれです:

したがって、これは戻りますIObservable<Container>()が、私が言ったように、私は内部の値にもっと興味があります…

私はこれを思いついた…</p>

SkipWhileGetCenterCoordinates方法は意味がありますか?または、最初に座標を解凍する必要があるため、(IEnumerableのイントロに関連する)イベントをサブスクライブしますか?…ObservableExpression-Treeはいつ実行されますか?それとも、その(パフォーマンス)に注意を払う必要はありませんか?サブジェクトを使用してこれを処理したり、他のイベントを公開したりするためのより良い方法はありますか?これはRXスタイルですか?改善の提案はありますか?

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 投票する
2 に答える
389 参照

haskell - ターン ベースのアスキー ゲームに FRP (特にリアクティブ バナナ) を使用することは理にかなっていますか?

gnugoの ascii インターフェイスのようなものを考えています。ターンは、共進化する (ユーザー入力を可能にするモナディック) ストリームのペアと考えることができます。これは漠然とコンジットを思い起こさせます。

これを行うために既存のライブラリを使用する方法がよくわかりません。

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

haskell - リアクティブバナナで繰り返されるイベントをどのように削除しますか

リアクティブバナナには、一連の番号を生成するイベントストリームがあり、そのうちのいくつかは連続して数回繰り返されます(すべての重複ではなく、連続した重複だけです)。連続していない重複のみを含むようにそのイベントストリームを変更するにはどうすればよいですか?

変更を使用して、イベントが新しい番号の場合にのみ動作が「変更」されると考えて動作に変換しようとしましたが、代わりに、新しい入力イベントが受信されるたびに動作が変更イベントをトリガーします。

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

haskell - Haskellのreactive-bananaのreactive-webのflatMapに相当するものは何ですか?

別のイベントストリームまたはシグナルの着信値に応じて、次にどのイベントストリームから発行するかを選択するreactive-bananaの関数を探しています(動作?)。scala、reactive-web のライブラリでは、これは次のように行われます。

ありがとう !

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

c# - IObservable を生成するための推奨される方法ストリームから

私たちのアプリケーションの一部として (現在約 4 か月間本番環境にあります)、IObservable に変換する外部デバイスからのデータ ストリームがあります。

これまで、以下を使用して生成してきましたが、非常にうまく機能しています。

昨夜、yield return構文を使用して同じ結果を達成する方法があるかどうか疑問に思い、これを思いつきました:

それは非常にうまく機能しているようで、はるかにクリーンですが、一方の方法に別の方法の長所または短所があるかどうか、または完全に優れた方法があるかどうか疑問に思っていました.

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

.net - Reactive Extensions 特定の数に基づく並列処理

Reactive Extensions は初めてです。オブジェクトのコレクションがあり、各オブジェクトのメソッドを呼び出し、メソッドはブール値を返します。for eachループを使用してメソッドを呼び出してそれぞれをループする代わりに、リアクティブ拡張機能で、指定された数のオブジェクト(一度に5つなど)のメソッドを同時に呼び出し(フォークと結合)、最初のオブジェクトが実行された後に行う方法はありますか? 、6番目はメソッドを呼び出す必要があり、すべてのオブジェクトが完了するまで続行する必要があります。

ご回答ありがとうございます。

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

java - LMax ディスラプターと Rx フレームワークの概念は並行していますか?

ここで読んだようにhttp://mechanitis.blogspot.fr/2011/06/dissecting-disruptor-how-do-i-read-from.html

「個々のアイテムごとに、消費者は単に「この数を超えたら教えてください」と言い、その見返りに、あと何個のエントリを取得できるかを通知されます。」

これは、Erik Meijer http://www.youtube.com/watch?v=8Mttjyf-8P4によって公開されている Rx フレームワークの概念に関連していません か?

はいの場合、Rx フレームワークは同様のソフトウェアを実装するのに役立ちますか?

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

windows-phone-7 - 主題Rxで

Rx での Subject の実際の使用法は何ですか。101 個のサンプルのうち 1 個のサンプルを見つけましたが、これをどこに適用するかについて明確なアイデアが得られなかったと思います。Rxでの件名の作業を示す簡単なサンプルを投稿してください。これをWindows Phoneのコンテキストで使用しています。

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

groovy - Groovyクロージャでのメソッド呼び出しの追跡

私はリアクティブ評価用の小さなDSLを書いていますが、Groovyでのメタプログラミングの助けが必要です。

サンプルDSLコード:

'var'関数は新しいSignalインスタンスを作成します。

このsignal関数にはSignal、クロージャー内のインスタンスのリストが必要です(例への参照ab例)。

実用的な実装:

変数の受け渡しを回避する方法はありますか?itサンプルは次のようになります

編集:テスト用の スタブSignal実装:

DSLのテストケース: