delay.lua 676 B

12345678910111213141516171819202122232425262728293031
  1. local rx = require 'rx'
  2. local timerResolution = .25
  3. local function log(message)
  4. print('[' .. string.format('%.2f', rx.scheduler.currentTime) .. '] ' .. message)
  5. end
  6. rx.scheduler:schedule(function()
  7. log('this is like a setTimeout')
  8. end, 2)
  9. rx.scheduler:schedule(function()
  10. local i = 1
  11. while true do
  12. log('this prints i twice per second: ' .. i)
  13. i = i + 1
  14. coroutine.yield(.5)
  15. end
  16. end)
  17. rx.scheduler:schedule(function()
  18. for i = 1, 3 do
  19. log('this will print for 3 updates after 1 second')
  20. coroutine.yield()
  21. end
  22. end, 1)
  23. repeat
  24. rx.scheduler:update(timerResolution)
  25. os.execute('sleep ' .. timerResolution)
  26. until rx.scheduler.currentTime >= 3