Studying Event loops, microtasks and async await in JavaScript