When to use promise.all()?

前端 未结 8 821
孤街浪徒
孤街浪徒 2020-12-02 17:27

This is more of a conceptual question. I understand the Promise design pattern, but couldn\'t find a reliable source to answer my question about promise.all():<

8条回答
  •  攒了一身酷
    2020-12-02 17:54

    I tend to use promise all for something like this:

    myService.getUsers()
       .then(users => {
           this.users = users;
    
           var profileRequests = users.map(user => {
               return myService.getProfile(user.Id); // returns a promise
           });
    
           return Promise.all(profileRequests);
       })
       .then(userProfilesRequest => {
           // do something here with all the user profiles, like assign them back to the users.
    
           this.users.forEach((user, index) => {
               user.profile = userProfilesRequest[index];
           });
       });
    

    Here, for each user we're going off and getting their profile. I don't want my promise chain to get out of hand now that i have x amount of promises to resolve.

    So Promise.all() will basically aggregate all my promises back into one, and I can manage that through the next then. I can keep doing this for as long as a like, say for each profile I want to get related settings etc. etc. Each time I create tonnes more promises, I can aggregate them all back into one.

提交回复
热议问题