Skip to content

Instantly share code, notes, and snippets.

@jozefchutka
Created May 30, 2022 07:15
Show Gist options
  • Select an option

  • Save jozefchutka/77dfc72b22828312d3259567016aef17 to your computer and use it in GitHub Desktop.

Select an option

Save jozefchutka/77dfc72b22828312d3259567016aef17 to your computer and use it in GitHub Desktop.
setTimeout vs requestAnimationFrame vs scheduler vs Promise vs queueMicrotask
setTimeout(() => console.log("setTimeout #1"))
requestAnimationFrame(() => console.log("requestAnimationFrame #1"))
scheduler.postTask(() => console.log("scheduler #1"))
queueMicrotask(() => console.log("queueMicrotask #1"))
Promise.resolve().then(() => console.log("Promise #1"))
setTimeout(() => console.log("setTimeout #2"))
requestAnimationFrame(() => console.log("requestAnimationFrame #2"))
scheduler.postTask(() => console.log("scheduler #2"))
queueMicrotask(() => console.log("queueMicrotask #2"))
Promise.resolve().then(() => console.log("Promise #2"))
/*
prints:
queueMicrotask #1
Promise #1
queueMicrotask #2
Promise #2
requestAnimationFrame #1
requestAnimationFrame #2
scheduler #1
scheduler #2
setTimeout #1
setTimeout #2
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment