Promise или async/await?
Исторически сперва появились коллбэки, затем промисы, затем async/await.
При этом промисы от коллбэков отличаются кардинально, а async/await можно рассматривать как "сахар" к промисам. В идеале везде использовать async/await, там где это невозможно или неудобно - промисы, и еще реже коллбэки.
Я совмещаю. Когда Promise hell Не намечается, то и промисы вполне удобню юзнуть