eteration means to break a task into multiple turns so that on each eteration, instead of going through a conventional loop, at the bottom of the loop we call settimeout, passing it a function which causes us to do the next eteration.