Should note that an `async function` *ALWAYS* returns a promise... I often see things like...
async function foo() : Promise<bar> {
return new Promise(...)
}
Because of a lack of understanding of this simple fact, which seems to be amplified with the typescript typing of Promise<T> in the declaration.