Asynchronous JavaScript: Promises, Async/Await and AJAX - Understanding Asynchronous JavaScript: The Event Loop