{"version":"1.0","type":"rich","title":"Serially Iterating An Array, Asynchronously","description":"This example demonstrates a pattern for processing an array of asynchronous steps sequentially, where each step must finish before the next begins. It shows a recursive function, `run`, that takes an array of functions (`steps`), a shared `data` object, and a completion callback (`done`). The function shifts the first step from the array, invokes it with the data and a callback, and on success recursively calls itself with the remaining steps. If a step returns an error, the recursion halts and passes the error to `done`. The code uses plain JavaScript callbacks and array mutation via `shift()`, with no external libraries.","provider_name":"VizHub AI Studio","provider_url":"https://next.vizhub.com","html":"<iframe src=\"https://next.vizhub.com/viz/gist-4db3667e33fa2a569dc0?mode=embed\" width=\"960\" height=\"500\" scrolling=\"no\" frameborder=\"1\"></iframe>","width":960,"height":500,"cache_age":3600}