It's more about the concurrency abstractions available. And half the joy of writing async code in JS is that it's single-threaded.
Doing many things at the same is inherent to doing networked stuff. How ergonomic that is going to be is one of the only real things that sets languages apart.
There are many ways of doing I/O, but nowadays everyone seems to do everything async without giving it a second thought.