async / await allows you to choose how async you want your code to be/look, and I for one like to have a choice as opposed to say other languages that don't always have an async option.
Node.js is garbage (well, good for simple crud apps) and so is JS.
That being said, I do like how C# handles it more than the way JS has handled it, but both are fantastic.
You can say JS is "garbage" all you want, but it's close to the most popular language on the planet and many many people are writing great things because of it.