The concept of 'done-ness' is not something that is often considered when writing functions in JavaScript — you end up just running out of data or a function stops getting called.
There are many async scenarios that make sense to signal that work is completed.
By following a completion pattern, we can easily trigger repetition and sequencing (async or not) into our code.
You're in Section 05 of Composing Closures and Callbacks in JavaScript
John Lindquist is a co-founder of egghead.io John has spent the majority of his career developing Rich Web Applications. Before starting egghead.io, John worked at JetBrains as a WebStorm evangelist, and before that he was a Technical Architect at Isobar leading large teams in building the latest and greatest in web apps for the Air Force, HBO, and Bloomberg. Learn more about John's story with egghead here.