問題タブ [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 に答える
2456 参照

haskell - 私は反応バナナを正しく使用していますか?

これは、reactive-banana ライブラリを使用した Haskell FRP プログラムの例です。私は Haskell について自分のやり方を感じ始めたばかりで、特に FRP が何を意味するのかがよくわかりません。以下のコードに対する批評をいただければ幸いです

ここに要点があります: https://gist.github.com/1099712

これが accumE の「良い」使用法であるかどうかについてのコメントを特に歓迎します (この関数が毎回イベント ストリーム全体をトラバースするかどうかはわかりませんが、そうではないと思います)。

また、複数のソケットからメッセージを取り込む方法を知りたいです-現時点では、永遠に1つのイベントループがあります。この具体的な例として、カウンター内の IdMap の現在の状態を照会するために、2 番目のソケット (zeromq 用語の REQ/REP ペア) を追加するにはどうすればよいでしょうか?

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

.net - Socket and Reactive Extension(Rx)を使用して、接続されたクライアントソケットから受信メッセージバッファを取得する方法

私はRxに少し慣れていないので、それを通して自分の道を学んでいます。私はそこにたくさんの例をチェックしましたが、どれも私のニーズに合いません。

シナリオ:1つのソケットサーバーソケットがあります(TCPListenerオブジェクトではなく単純なソケットオブジェクトを使用して作成されています)。このサーバーソケットに複数のクライアント(TCPClientではなくクライアントソケット)が接続されています。BeginReceiveおよびEndReceive非同期操作に「FromAsyncPattern」演算子を使用して、Rx(リアクティブ拡張)を使用してクライアントソケットから送信されたメッセージを取得しようとしています。

バッファ内のメッセージの取得をほぼ開始しました。ただし、問題は、バッファが前の操作から受信した同じメッセージを返すか、現在と前の受信操作からのコンテンツが混在することです。

使用されるコードは次のとおりです。

OnMessageReceivedメソッドは、メッセージ受信イベントを発生させ、さらに処理するためにバッファーを他のクラスに送信するための単なるデリゲートです。

問題: メッセージを取得するたびに同じバッファが使用されます。以前に受信したバッファからメッセージをクリーンに受信するにはどうすればよいですか。

-メッセージを部分的に受信し、次のメッセージが実際にはこの同じメッセージの一部である場合はどうすればよいですか。

素晴らしいと思われるいくつかのコードスニペットで上記の問題を解決するのを手伝ってください。この質問を投稿する理由は、これまでに行った実装でTCPListenerを使用しているためであり、ここでの制約はソケットオブジェクトを使用することです:(

前もって感謝します。

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

c# - なぜIObservableなのか.First()ブロック?

最近、Reactive Extensions for .NETに頭を悩ませようとしていますが、概念的な壁にぶつかりました。IObservable.First()がブロックされる理由がわかりません。

次のようなサンプルコードがあります。

私が期待していたのは、itemA参照的に同等でaあり、そのメンバーなどにアクセスできるようにすることでした。代わりに、First()ブロックされ、Assert.AreEqual()到達することはありません。

Subscribe()これで、Rxを使用する場合、コードはsにすべきであることを十分に理解しているIObservableので、ここで間違ったことをした可能性があります。ただし、さまざまなメソッドシグネチャに基づいて、次のいずれかを実行することはできません。

また

私は何が欠けていますか?

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

events - Action リスナーから IObservable を作成することは可能ですか?

Action<Guid>EventArgs を持つ従来の EventHandler とは対照的に、 として定義されたイベントを持つクラスがあります。これを標準の EventHandler で行うのと同じ方法で IObservable に変換する方法はありますか? 他の IObservable とマージできるように、これを行う必要があります。

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

programming-languages - 関数型リアクティブプログラミングの「信号」表現は正しいですか?

私はFRPを研究していて、さまざまな実装を見つけました。私が見たモデルの1つは、「信号」表現と呼ぶモデルです。この重要な要素は、イベントと動作を1つのエンティティに結合します。

まず、Signalは、値がBehaviourであるオブジェクトです。次に、Signalにはイベント「ストリーム」があり、標準のデータ構造として表示および操作できます(Signalで「each」、「map」、「filter」などを使用して、イベントの反応を定義できます)。たとえば、これを行うことができます(「time」は時間のシグナル表現です)。

このFRPの表現は正しいですか、それとも問題がありますか?私はこれが機能する方法と、個人的に説明するのがいかに簡単であるかがとても好きですが、それが正しいかどうかはわかりません。

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

system.reactive - 最後のオブザーバーがサブスクライブを解除したときにイベントの発行を停止する Rx オブザーバブルを作成するにはどうすればよいですか?

オブザーバブルを (さまざまな方法で) 作成し、関係者に返しますが、彼らが聞き終わったら、リソースを消費し続けないようにオブザーバブルを破棄したいと考えています。これは、pub サブシステムでトピックを作成することと考える別の方法です。誰もトピックにサブスクライブしていない場合、トピックとそのフィルタリングを保持したくありません。

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

system.reactive - タイムスパンが経過した後に終了するオブザーバブルを作成するRxフレームワーク関数はありますか?

いくつかのオブザーバブルはとても困っています。彼らはあなたに聞いて、聞いて、彼らが言わなければならないことすべてを聞いてほしいと思っています。本当に数秒のイベントしか処理できない場合はどうなりますか?次のようなものを書いていただけませんか

概念的には、これにより、特定の時間が経過するまでイベントを渡し、その後、基になるオブザーバブルのサブスクライブを解除して、独自のシーケンスが完了したことを示すサブジェクトが作成されます。手でそのように書くことができると思いますが、これを行う既存の演算子がいくつかあるに違いないようです。私はそれが私が望むことをObservable.TimeOutすることを望んでいました、例えば使用する

しかし、それが行っているのは、観測間の期間が指定された値よりも長い場合、観測量をタイムアウトにすることだと思います。これも便利ですが、私が求めているものではありません。

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

signals-slots - 「信号とスロット」の概念はリアクティブプログラミングですか?

タイトルに書かれているように、「Signals andSlots」はリアクティブプログラミングの簡単な方法ですか?

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

idisposable - 定期使い捨て

Reactive RxでScheduledDisposableを使用するための良いケース/例は何ですか?

CompositeDisposableSerialDisposableを使用するのが好きですが、 ScheduledDisposableが必要ですか。

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

haskell - リアクティブバナナはネットワーク内のサイクルを処理できますか?

次のようなコードがあります。

evtAutoLayoutがevtAutoLayoutにフィードするguiStateにフィードすることがわかります。つまり、そこにサイクルがあります。これは意図的なものです。自動レイアウトは、平衡に達するまでGUI状態を調整し、その後Nothingを返すため、ループを停止する必要があります。もちろん、新しいモデルの変更で再び開始できます。

ただし、これをまとめると、コンパイル関数呼び出しで無限ループが発生します。autoLayout = Nothingの場合でも、コンパイル中にスタックオーバーフローが発生します。

guiStateでユニオン呼び出しを削除し、画像からevtAutoLayoutを削除すると...

それはうまくいきます。

助言がありますか?