2016-05-09 10 views
37

Come dormire/aspettare un secondo?Elixir Sleep/Wait for 1 Second

migliore che ho trovato è stato qualcosa di simile (in IEX):

IO.puts "foo" ; :timer.sleep(1); IO.puts "bar" 

Ma entrambi i miei mette accadere senza alcun ritardo.

+11

Anche in Elixir 1.3 è possibile utilizzare 'Process.sleep' invece di chiamare Erlang. – ssbb

risposta

54

Timer utilizza millisecondi non secondi, aggiornamento a:

IO.puts "foo" ; :timer.sleep(1000); IO.puts "bar" 

Documentazione di: timer in doc di Erlang:

sospende il processo di chiamare questa funzione per tempo quantità di millisecondi e poi ritorna OK o sospendere il processo per sempre se Il tempo è l'infinito dell'atomo. Naturalmente, questa funzione non restituisce immediatamente .

http://erlang.org/doc/man/timer.html#sleep-1

+20

Ci sono utili helper nel modulo timer per specificare gli intervalli di tempo. Ad esempio: ': timer.sleep (: timer.seconds (1))' –