使用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,万一有更多的信息在那里。