Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How callbacks in JavaScript really work

How callbacks in JavaScript really work

Understanding how JavaScript actually handles asynchronous callbacks.

Avatar for Jesstern Rays

Jesstern Rays

December 15, 2015

Other Decks in Programming

Transcript

  1. app.js call stack web apis callback queue event loop fn()

    function fn () { console.log(‘You called?’) } setTimeout(fn, 0)
  2. app.js call stack web apis callback queue event loop fn()

    function fn () { console.log(‘You called?’) } setTimeout(fn, 0) fn()
  3. app.js call stack web apis callback queue event loop fn()

    function fn () { console.log(‘You called?’) } setTimeout(fn, 0) fn() console.log()
  4. app.js call stack web apis callback queue event loop fn()

    function fn () { console.log(‘You called?’) } setTimeout(fn, 0) fn()
  5. app.js call stack web apis callback queue event loop fn()

    function fn () { console.log(‘You called?’) } setTimeout(fn, 0)
  6. app.js call stack web apis callback queue event loop fn()

    function fn () { console.log(‘You called?’) } setTimeout(fn, 0)
  7. app.js call stack web apis callback queue event loop fn()

    function fn () { console.log(‘You called?’) } setTimeout(fn, 0) setTimeout(fn,0)
  8. app.js call stack web apis callback queue event loop fn()

    function fn () { console.log(‘You called?’) } setTimeout(fn, 0)
  9. app.js call stack web apis callback queue event loop fn()

    function fn () { console.log(‘You called?’) } setTimeout(fn, 0) setTimeout(fn,0)
  10. app.js call stack web apis callback queue event loop fn()

    function fn () { console.log(‘You called?’) } setTimeout(fn, 0)
  11. app.js call stack web apis callback queue event loop fn()

    function fn () { console.log(‘You called?’) } setTimeout(fn, 0) fn()
  12. app.js call stack web apis callback queue event loop fn()

    function fn () { console.log(‘You called?’) } setTimeout(fn, 0)
  13. app.js call stack web apis callback queue event loop fn()

    function fn () { console.log(‘You called?’) } setTimeout(fn, 0)
  14. app.js call stack web apis callback queue event loop fn()

    function fn () { console.log(‘You called?’) } setTimeout(fn, 0) fn()
  15. app.js call stack web apis callback queue event loop fn()

    function fn () { console.log(‘You called?’) } setTimeout(fn, 0) fn() console.log()
  16. app.js call stack web apis callback queue event loop fn()

    function fn () { console.log(‘You called?’) } setTimeout(fn, 0) fn()
  17. app.js call stack web apis callback queue event loop fn()

    function fn () { console.log(‘You called?’) } setTimeout(fn, 0)
  18. references What the heck is the event loop anyway? by

    Philip Roberts Philip Robert’s "loupe"
  19. image credits Waiter by Scott Lewis from the Noun Project

    Sandwich by Tom Glass, Jr. from the Noun Project