简体   繁体   中英

Elixir Sleep / Wait for 1 Second

How to sleep / wait for one second?

Best I could find was something like this (in iex):

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

But both of my puts happen with no delay.

Timer uses milliseconds not seconds, update to:

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

Documentation of :timer in Erlang's doc:

Suspends the process calling this function for Time amount of milliseconds and then returns ok, or suspend the process forever if Time is the atom infinity. Naturally, this function does not return immediately.

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

Since Elixir 1.3 you can use Process.sleep/1 :

Process.sleep(1000)

The argument is in milliseconds.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM