Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript Asynchronous Programming with JavaScript Understanding Promises Handle Multiple Promises with Promise.all

Does promise.all() produce an array of objects, or an array-like collection?

All this promise stuff is quite foreign, but it's certainly interesting.

I can understand that every time a request is made to a server, you might need to generate a promise to manipulate the data returned as a promise object with .resolve().

What I don't understand is the nature of the data being delivered to resolve() when the Promise.all() method is applied.

function getProfiles(json) {
    const profiles = json.people.map( person => {
        return getJSON(wikiUrl+person.name);
    });
    return Promise.all(profiles);
}

What do promises actually return to the resolve placeholder when Promise.all() is called?

1 Answer

Steven Parker
Steven Parker
229,644 Points

The Promise.all() static method converts the array of promises into a single Promise. The new promise is resolved only when all of the individual promises given to it have resolved, or is rejected when any one of them rejects.

When successful, it returns an array of all the individual fulfillment values.

For more details, see the MDN page on Promise.all().