問題タブ [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 投票する
4 に答える
379 参照

c# - C# で計算された配列値 - リアクティブ プログラミング

例 1

私たちが知っているように、データベースには、隣接する列の値に基づいて列が計算される計算列の概念があります。

問題は、計算された列が現在の行以外の行に関連付けられないことです。

例 2

次に、セルに数式を入れることができるスプレッドシート (つまり、Excel) があります。これは計算列に似ていますが、より強力です。数式は、RDB のように現在の行/列だけでなく、スプレッドシートの任意のセル (またはそれらのセット) に関連付けることができます。

問題

計算された (または自動更新された値) の概念は素晴らしいですが、C# の一連の値/オブジェクトで同様のことを行うにはどうすればよいでしょうか?

それぞれが同じリスト内の他の値 (またはセット) に関連付けられている値のリスト (または配列) を作成したいと思いますか? これは、スプレッドシートのセル値のようなものです...値を変更すると、関連する値が変更されます(関連するサブツリーの値全体も同様に変更されます)。

C# にそのような概念はありますか?

最も賢い方法でこれを行うにはどうすればよいでしょうか? LinkedListオブジェクトのプロパティの値が同じリスト内の他のオブジェクトに関連し、値がアクセスされるたびに評価されるオブジェクトを持つことができることを私は知っています(必要に応じて評価)。これは、途中でいくつか (すべての祖先ノード) が評価されることを意味する場合があります。最初に評価されてから個別にアクセスされるスプレッドシートのセルのように機能するより良い方法はありますか (評価の伝播)?

もちろん、これは多次元配列にも適用できます。

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

haskell - 反応バナナで複数のウィンドウと単一のデータ構造を処理する方法

次の状況を処理するために、リアクティブ バナナがどのように設計されたのか疑問に思っています。

中心的なデータ構造があるとしましょう。ユーザーは、データを表示し、ユーザーがデータを変更できるようにするさまざまな種類のウィンドウをいくつでも自由に開いたり閉じたりすることができます。

その性質上、一つの大きなネットワークを作るだけではうまくいかないと思います。これは、各ウィンドウにネットワークがあり、何らかの形で接続されているものですか?

このような他の状況では、データ構造を単一のチャネルの背後に配置し、全員が更新を送信しました。そして、データ構造は、ウィンドウがすべて「リッスン」した更新を「公開」します (イベントを発生させます)。

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

.net - HTTP POST リアクティブ拡張非同期。パターン ハンドル エラー

次のコードを使用しようとしていますが、例外が発生すると機能しません。誰でもこれについて私を助けることができますか? fetchresponse().catch() で Web 例外をスローしようとしています。diffタイプのデータを返すことは可能ですか(文字列以上のもの)。

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

system.reactive - 非同期パターン(queue.BeginReceive、queue.EndReceive)を使用したMSMQメッセージ受信にリアクティブエクステンション(Rx)を使用する

私はしばらくの間、プロジェクトのイベントとソケットプログラミング専用にRxを使用してきましたが、良い部分はそれがうまく機能していることです。私のコードを管理し、パフォーマンスを向上させ、実行と解釈を大幅に改善します。

最近、プロジェクトのプロセスフローを変更する必要があります。この場合、(ソケット操作からの)すべての受信データをキューにダンプする必要があります(キューイング用に決定されたMSMQ実装を使用)。

MSMQは、キューからメッセージをデキューするための非同期呼び出しを提供します(ただし、奇妙なパターンで)。私は現在、この目的でRxを使用するのに苦労していますが、それを可能にします。

質問:非同期パターンを使用してキューからメッセージを受信するためのRxを実装するためのクリーンなコード例を教えてもらえますか?

このようなものに類似したMSMQの非同期演算子の実装が必要です

前もって感謝します。*歓声* Rxと.NETに

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

c#-4.0 - 特定の時間に Observable メソッドを呼び出す最良の方法は何ですか?

RX を使用して非同期 Web リクエストを作成しています。定義済みの時間に Web リクエストを呼び出す適切なスケジューラはありますか? タスク スケジューラと RX スケジューラのどちらを使用するか迷っています。

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

c# - Repeat()で非決定論的な結果が得られるのはなぜですか

Rxに関する知識を広げようとしています。ですから、私はストリームをいじって、期待どおりに動作させるようにしています。

OnCompletedと再サブスクリプションの間の通知が失われる可能性があるため、Repeat()演算子は実際には困難であると読んだことがありますが、次のことがなぜ発生するのかを自分で理解することはできません。

この例を実行すると、結果は完全に非決定論的です。

結果1:

2と4を省略したのは良いことですが、実際には3と5の間には実際の2秒のギャップがないため、この結果の内部でも奇妙なことがあります。

ただし、結果はさらに悪化する可能性があります。これを参照してください:

1と2の間に2秒のギャップはありません。正確に1秒です。なぜ彼はそれを省かなかったのですか?

誰かが私のために物事を明確にすることができれば、私は幸せ以上になります!

編集

ここで間違っているのはマージである可能性があることに気づきました。クエリをConcatにリファクタリングすると、次のようになります。

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

c# - このコールドオブザーバブルで公開する必要がないのはなぜですか?

ここで風邪を引いObservableていて、「グループ化」を数回購読しているのに、なぜここで公開する必要がないのですか?実行すると望ましくない結果が生じると予想していましたが、驚いたことに、公開の有無にかかわらず機能します。何故ですか?

編集

Paulが気付いたように、基礎となるコールドオブザーバブルを2回サブスクライブしているので、シーケンスを2回確認する必要があります。しかし、私はこの効果を目に見えるようにすることができませんでした。デバッグ行を挿入しようとしましたが、たとえば、これは「実行中」を1回だけ出力します。

コールドオブザーバブルを扱っていて、使用していないという効果を可視化できるのではないかと思いますPublish()。別のステップでは、(上記を参照)どのようにPublish()効果がなくなるかを確認したいと思います。

編集2

Paulが提案したように、私IObservable<string>はデバッグ目的でカスタムを作成しました。ただし、そのメソッドにブレークポイントを設定すると、一度Subscribe()だけヒットすることに気付くでしょう。

だから私にとって、質問はまだ開いています。なぜ私はPublishこの寒さでここを必要としないのObservableですか?

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

haskell - Netwireを学ぶための簡単な演習?

Haskell wiki> Netwireには、Netwireの優れた入門資料がいくつかありますが、今では(趣味のHaskellerとして)もっと何かに興味があります。私の矢/ネットワイヤーのスキルを磨くには、どのような簡単な演習が有益でしょうか?

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

.net - 使用可能で保守可能なコードのプログラミング

私はリアクティブプログラミングに不慣れで、問題に遭遇しました...

私のコードは次のようになっています。

どうすれば流暢なRxに変更できますか?私はこのコードから始めました:

このコードを改善する提案はありますか?多分別の解決策?このカスケードコードは好きではありません...

ありがとう!

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

haskell - FRPで動作(およびその他のタイプ)を適用する場所

私はreactive-bananaを使用したプログラムに取り組んでおり、基本的なFRPビルディングブロックを使用してタイプを構造化する方法を考えています。

たとえば、実際のプログラムの簡単な例を次に示します。たとえば、システムが主にウィジェットで構成されているとします。プログラムでは、時間の経過とともに変化するテキストの断片です。

ができた

しかし、私も持つことができます

Behavior Widget時変の振る舞いについて話したいときに使用します。これにより、作業が「簡単」になり、Behaviorウィジェットを解凍して再パックするのではなく、操作をより直接的に使用できるようになります。

一方、前者は、ほとんどすべてのウィジェットが時間の経過とともに変化するため、実際にウィジェットを定義するコードの重複を回避しているようです。また、ウィジェットをBehavior組み合わせることで、ウィジェットを定義しないものもいくつか定義していることに気付きます。より一貫した方法で他のもの。

別の例として、両方の表現で、インスタンスを持つことは理にかなっていMonoidます(そして、私はプログラムにインスタンスを持ちたいです)が、後者の実装はより自然に見えます(リストモノイドをニュータイプに簡単に持ち上げるだけなので) )。

(私の実際のプログラムではではDiscreteなくを使用Behaviorしていますが、それは適切ではないと思います。)

同様に、Behavior (Coord,Coord)またはを使用(Behavior Coord, Behavior Coord)して2Dポイントを表す必要がありますか?この場合、前者は当然の選択のようです。しかし、それがゲーム内のエンティティのようなものを表す5要素のレコードである場合、選択はあまり明確ではないように思われます。

本質的に、これらの問題はすべて次のようになります。

FRPを使用する場合、どのレイヤーでBehaviorタイプを適用する必要がありますか?

Event(程度は低いですが、同じ質問が当てはまります。)