Am I the only one who is happy using normal callbacks? I think they are the best representation of the asynchronous flow.
You can definitely write clean code with only callbacks, but one has to be pretty careful if there are many nested asynchronous actions.
Promises and await make that code very much clearer.