rsnext/examples/with-cerebral/modules/clock/provider.js

27 lines
440 B
JavaScript
Raw Normal View History

2017-09-23 16:30:22 +02:00
// milliseconds per second
const SECOND = 1000
let timer = null
export default context => {
2017-09-23 16:30:22 +02:00
context.clock = {
start (signalPath) {
const signal = context.controller.getSignal(signalPath)
function tick () {
const now = Date.now()
signal({ now })
2017-09-23 16:30:22 +02:00
timer = setTimeout(tick, SECOND - (now % SECOND))
}
tick()
},
stop () {
clearTimeout(timer)
}
}
return context
}