This isn't really a problem with JS. Like others have shown it can be significantly simplified.
Sure, I must say that at least the new Async Await is cleaner, which is somthing I've actually used much more than Promises, as I spend more time in Go
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.