使用Nitrogen, the Erlang web framework insert_bottom結束,我有接收消息,並將它們添加到HTML元素的底部下面的方法:兩個連續的快速調用WF:以相反的順序
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>}
不知何故,它們以相反的順序結束。
我已經開始添加timer:sleep()調用這個方法。在50毫秒的時間裏,他們的順序是正確的,而他們沒有。當他們處於不正確的順序時,他們似乎總是處於不正確的順序,這似乎是非常確定的。
任何想法爲什麼?這是一個錯誤?任何想法我應該如何讓他們以正確的順序,而不是睡覺?
也asked on the mailing list,萬一有更多的信息在那裏。