rsnext/examples/with-cerebral/modules/clock/provider.js
2020-05-18 17:44:18 -04:00

26 lines
454 B
JavaScript

// milliseconds per second
const SECOND = 1000
let timer = null
export default function provider(context) {
context.clock = {
start(signalPath) {
const signal = context.controller.getSignal(signalPath)
function tick() {
const now = Date.now()
signal({ now })
timer = setTimeout(tick, SECOND - (now % SECOND))
}
tick()
},
stop() {
clearTimeout(timer)
},
}
return context
}