How to collect an unknown number of async calls

I had a challenge the other day where I would request some data from a server. But the data was not all returned at once. But rather paginated. And I wouldn’t know beforehand how many pages I would need to process. So I couldn’t just pre-nest my callbacks.

That’s when I re-discovered promises.

Basically I can create a new promise for each page I need to call. Then use Promise.all to wait for all the requests to complete wherein I can process the array of results.

The code snippet to grab all the billable hours from a Freshbooks account then looks like this

View this gist on GitHub

Leave a Reply

Your email address will not be published.