2016-04-29 4 views
1

Ich habe Probleme zu verstehen, wie mehrere Nachrichten mit einem Erlang-Prozess erhalten. Hier ist, was ich in der Shell versucht:Empfangen mehrerer Nachrichten in einem Erlang-Prozess

1> GetMessage = spawn(fun() -> getMessage() end). 
<0.252.0> 
2> GetMessage ! msg. 
Got a message 
msg 
3> GetMessage ! msg 
msg 

-Code für getMessage/0:

getMessage() -> 
    receive 
    _ -> 
     io:format("Got a message~n", []) 
end. 

Wie kann ich den Empfang von Nachrichten?

Antwort

2

Ah, bekam es:

getMessage() -> 
    receive 
    _ -> 
     io:format("Got a message~n", []) 
     getMessage() % Add this line! 
end. 

Sie müssen wieder die Funktion aufgerufen werden, nachdem die Nachricht zu empfangen.