I'm not sure you fully grok async/await then. Thing is, using async/await
means using promises. You can't use async/await without promises. An async function returns a promise.
Always. (in a way, `async` can be seen as something of a type annotation).
If you want to use async/await with something that's asynchronous but not Promise based, you'll first need to convert it into a promise before you can async/await it. This is actually very elegant in my opinion: instead of proposing yet another way to do asynchronicity in JS, async/await fully embraces Promises, which you already know.
Of course, this means that async/await also has all of Promise's downsides. For example, you can only resolve a promise once, so neither Promises now async/await make dealing with streams of asynchonous events any easier.