https://javascript.plainenglish.io/demystifying-javascript-asynchronous-code-from-callbacks-to-async-await-64018979994b