This seems like a simple loop from 0 to someMaxNumValue. You could use ramda’s range. Though I would probably look into lazy.js for this.
Since the loop contains async functions, I would perform a map that would return a promise.
Finally perform a Promise.all, which will return when all the promises have resolved.