Skip to content

Instantly share code, notes, and snippets.

@ezekielchentnik
Created July 7, 2019 19:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ezekielchentnik/2bea4417ae2213d7c061e43400ec2050 to your computer and use it in GitHub Desktop.
Save ezekielchentnik/2bea4417ae2213d7c061e43400ec2050 to your computer and use it in GitHub Desktop.
const raff = (render, raf = window.requestAnimationFrame) => {
let redraw = false
let args = null
return (...yargs) => {
if (args === null && !redraw) {
redraw = true
raf(() => {
redraw = false
render.apply(render, args[args.length-1])
args = null
})
}
args = yargs
}
}
const render = state => {
console.log(state.now)
}
let draw = raff(render)
let prev = {}
const setState = state => {
draw(state, prev)
prev = state
}
setState({ now: date.now() })
setState({ now: date.now() })
setState({ now: date.now() })
setState({ now: date.now() })
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment