web-dev-qa-db-fra.com

Elixir Sleep / Wait pendant 1 seconde

Comment dormir/attendre une seconde?

Le mieux que j'ai pu trouver était quelque chose comme ça (dans iex):

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

Mais les deux de mes coups arrivent sans délai.

52
newUserNameHere

Le minuteur utilise des millisecondes et non des secondes, mettez à jour pour:

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

Documentation de: timer dans la doc d'Erlang:

Suspend le processus en appelant cette fonction pour la quantité de temps en millisecondes, puis renvoie ok, ou suspend le processus pour toujours si Time correspond à l'infini atom). Naturellement, cette fonction ne retourne pas immédiatement.

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

73
Jeremie Ges

Depuis Elixir 1.3, vous pouvez utiliser Process.sleep/1:

Process.sleep(1000)

L'argument est en millisecondes.

32
Alexandre L Telles