2017-04-16 7 views
-2

n00b。私はシーケンシングメッセージ、how to chain Cmd Msgs、そしてチャドギルバートの答えについてこのような質問に出くわしました。シーケンスメッセージ/コマンド "wait-for"セマンティクス

Kewl。シーケンスされたメッセージそのものが、元々シーケンスされたメッセージの残りの部分の前に実行する必要のあるコマンドを生成した場合はどうなりますか?私は、機械銃の上の答えの倍数がそのリストを通っているので、実行するコマンドの「待ち行列」を介してプレーン・オールの再帰に切り替えると思います。

これはうまくいくようです(ただし、下記の質問2を参照してください)。ここで、このパスのコマンドの1つが、最初にシーケンスされたメッセージの残りの部分が処理される前にイベント/メッセージを待つ必要がある場合はどうなりますか?上記チャドの答えから適応以下のエリー、で

https://ellie-app.com/WfGhcDFjxxa1/0

- スタート状態から...
- "私をクリックしてください" をクリックします。 "ワン、One_A、二、三の初期化"

次:ログを生成する - 一つはメッセージOne_A
得中間コマンド生成のメッセージ - このメッセージ[One, Two, Three]
をシーケンス

を - - リセットをクリックしてください
- "ポートを使用"にチェックしてください
- "クリックしてください"をクリックしてください。シーケンスメッセージ[One, Two, Three]
- メッセージ1は、送信ポートに送信された暫定コマンドを生成します。500ms後にサブスクライブポート
を介して何かを送信します。これによりログが生成されます。 "1、2、3、One_AReceived" foo 「」
- (出力ポートコマンド及び着信加入メッセージは相互に関係がないので、もちろん、これは驚くある)

今質問:

1)/ OペイロードW発信ポートコマンド例えば、port name :() -> Cmd msgと表される。受信ポート/サブスクリプション用のアナログはありますか?ペイロードなしでメッセージを受信しますか? port name :() -> Sub msgは機能しません。 (はい、私は、ペイロードを捨てることができますが、plsはそれが問題ではありません注意してください。)

2)̶̶C̶h̶a̶i̶n̶M̶s̶g̶s̶では、̶48行、̶私が期待置くTHE暫定-生成されたコマンドアットザヘッド/左ザ̶̶!̶ ̶[̶.̶.̶.̶]̶ ̶コマンドリストなる有するIT処理̶n̶e̶x̶t̶.̶ターンアウト̶t̶h̶a̶t̶'̶s̶ないザ場合、̶ITのニーズに現れるでTHE̶e̶n̶d̶.̶OK ...でも置くそれをザヘッド、̶すなわち。 ̶̶̶m̶o̶d̶e̶l̶2̶ ̶!̶ ̶[̶ ̶c̶m̶d̶s̶1̶,̶ ̶c̶r̶e̶a̶t̶e̶C̶m̶d̶ ̶(̶C̶h̶a̶i̶n̶M̶s̶g̶s̶ ̶y̶s̶)̶ ̶]̶──(─n Oポート)̶利回り̶ "初期化̶一つ、二つ̶、̶̶̶̶O̶n̶e̶_̶A̶̶̶、̶三つの" なぜ?̶あるTHE処理注文のバッチ処理コマンドではない固定?̶

答えは2:

となりました。プラットフォーム番号。batch : List (Cmd msg) -> Cmd msgListから、batchは、コマンドの順序付けを暗示することができます。他の場所での読書の継続から、明らかにそうではありません。 「xarvh 2017年3月23日01:05」hereを参照してください。応答の抜粋を言い換えれば:

タスクは連鎖[と実行順序、編集]のためのものです。エルム「パターン」(アラカルト待つループ、継続、などがあります。cmdは

3「私はあなたのための作業のチャンクを持っている」)と、今このすべて運転した質問は、ランタイムに伝えるためのものです他の言語で)、あるシーケンス/連鎖メッセージが処理され、続行する前に特定のイベントを待っていますか?

+1

違反はありませんが、これをより簡潔に書き直すことはできますか? stackoverflowの質問は1つの質問だけを含むべきであり、ポイントまでまっすぐであるべきです。 –

+0

エマニュエル、何も取らず、アドバイスはありがとう。それを私の新しいものに変えてください。また、質問の主な質問に対する動機づけの文脈を提供する私の考えと同様に、最後に質問3です。私は以来、ここに当てはまる「港湾作業」の提案/議論を見てきましたが、まだまだ「もの」ではありません。 – pakx

答えて

0

ここに私がいるので見つけたものです:送信port name:() -> Cmd msgアナログはコマンド順序のを暗示していませんスラックチャネル上のILIASへport name: (() -> msg) -> Sub msg(Thxを)

2)を着信される)

1 -execution

3)タスクは、チェーン化と実行の順番に使用できます。相互依存するメッセージのシーケンスが処理される場合、より多くの中間メッセージ/タスク/ポート通信などの任意の組み合わせが生成され、それ自体が処理される必要があり、メッセージには「すべてのものをつなぐ1つの環」がありません。デザインを再考してください。

関連する問題