Promises, async/await, and the Event Loop

JavaScript runs on a single thread yet handles many things at once. The event loop, the task queues, and where promises fit explain how that works.