If you use then, you will only can have the result in the scope of the callback of that then. Even if you use a “global” scoped variable you have no guarantee the callback have finished. await will “pause” your async function until that promise resolves. Then you can use the value inside the async function. But yeah, async functions are Promises.