Earlier quoted context omitted.
How? Javascript has a lot going for it from async-everything to conveniences like destructuring. And it works in the browser and has things like Typescript. I have to find good reasons to use another dynamically-typed language over Javascript.
I would argue async-everything the biggest hassle with Javascript. Most of the time, I need things to run synchronously. Do this thing, then do that thing based on the result of the first thing. The need for async is the exception. So what we end up doing is expending extra effort forcing all the async stuff to run synchronously when that should be the default case.
With async/await is so nice now.
await step1() await step2()
That's it.