This lesson is both a refresher and a new learning experience for me. I'm no stranger to loops. I've used them at some point in the past though not so extensively I've gotten to use them nonetheless.
let is block-scoped, so a new i is created in each iteration. The closure captures the correct value of i at each step. Always use let or const in loops—especially when dealing with asynchronous code ...