st.timeout — Deferred Execution
lua
-- Execute cb after msec milliseconds (non-blocking, returns handle)
local t = st.timeout.set(msec, cb, arg1, arg2)
-- Execute cb repeatedly every msec milliseconds (non-blocking)
local t = st.timeout.loop(msec, cb, arg1, arg2)
-- Debounced execution: resets the timer each time it's called with the same id
local t = st.timeout.delay(id, msec, cb, arg1, arg2)
-- Cancel any of the above
t:clear()