• ShortFuse@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    11 months ago

    Yeah, that’s a big simplification and I get it. But the async syntax itself syntax “sugar” for Promises. It’s not like C# or Java/Android where it will spawn a thread. If you take a JSON of 1000 rows and attach a promise/await to each of them, you won’t hit the next event loop until they all run to completion.

    It’s a common misconception that asynchronous means “run in background”. It doesn’t. It means run at end of current call stack.

    Prior to that, the browser had window.setTimeout and its callback for delays and animation and such - but that’s it.

    And you STILL have to call setTimeout in your async executions or else you will stall your UI.

    Again async is NOT background. It’s run later. async wraps Promise which wraps queueMicrotask.

    Here is a stack overflow that explains it more in detail.

    • locuester@lemmy.zip
      link
      fedilink
      English
      arrow-up
      1
      ·
      11 months ago

      I’m well aware how async works in the single threaded js environment. All code blocks the main thread! Calling await on an async operation yields back.

      You’re right, async is commonly mixed up with multi-threaded. And in fact in many languages the two things work hand in hand. I’m very aware of how it works in JavaScript.

      We are agreeing. Don’t need more info.