If you think promise-based code with a lot of "then" is annoying, perhaps ES7 async/await will make you happier.
However, it is still easier to follow a ladder of conditional statements using async/await compared to escher-style stairs of callbacks inside callbacks.