質問

を使用 窒素は、Gimp用ドキュメウェブフレームワーク, 私は、以下の方法を受け取るメッセージ追加し、html要素:

receive_messages() ->
  receive
    Message ->
      io:format("~p received ~p", [self(), Message]),
      wf:insert_bottom(messages, [#p{}, #span { text=io_lib:format("~p", [Message]) }])
  end,
  wf:comet_flush(),
  receive_messages().

設定はオンに設定されています通常の方法でた彗星:

wf:comet(fun() -> receive_messages() end)

を受けた二つのメッセージを迅速に:

<0.907.0> received {starting_chat,<0.905.0>}
<0.907.0> received {connected_to,<0.902.0>}

これは私のHTML:

{connected_to, <0.902.0>}
{starting_chat, <0.905.0>}

なんだから期待の大きさが逆転す。

きっかけで追加タイマー:sleep()このメソッドの呼び出し.50ミリ秒単位のものが正しい順序で、20ています。るようにしたことがないよう、正しい情報めるように思われるものの誤った順序でも確定.

そのアイデアですが?このバグ?そのアイデアはどうしても、正しい順序で保持するよ!

いのメーリングリスト, ができなかった場合、詳細情報あります。

役に立ちましたか?

解決

wf_comet.erl は"不思議"逆コ適用後のinner_collect_content.私の推測ではinner_collect_content使用するテール-recursiveいます。

お申込みの場合は、タイムアウト、メッセージを収集した異なるループ、一つ一つの順序が逆です。


があるように見えるコミットを固定する別のリポジトリ:

http://github.com/gersh/nitrogen/commit/a8bfcb23d003e68f7394a0455285beeb0fbf9b09

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top