Bluebird de la Promesse.tous les() la méthode quand une promesse est dépendante d'une autre

Je suis en train d'écrire un peu de code qui ressemble actuellement ce parce que j'ai des dépendances dans mon code. Je me demandais si il y avait une manière plus propre de le faire avec la Promesse.tous les()? Voici mon pseudo code:

        return someService.getUsername()
            .then(function(username) {
                user = username;
            })
            .then(function() {
                return someService.getUserProps(user);
            })
            .then(function(userProps) {
                userProperties = userProps;
                return someService.getUserFriends(user);
            })
            .then(function(userFriends) {
                friends = userFriends;
            })
            .catch(error)
            .finally(function(){
                //do stuff with results
            });

La chose importante est que j'ai besoin de l'utilisateur avant que je puisse faire les deux appels pour getUserProps() et getUserFriends(). Je pensais que je pouvais utiliser Promesse.tous les() de cette façon:

var user = someService.getUsername()
    .then(function(username) {
        user = username;
    })
var getUserProps = someService.getUserProps(user);
var getUserProps = someService.getUserFriends(user);

return Promise.all(user, getUserProps, getUserFriends, function(user, props, friends) {
    //do stuff with results
})

Mais je ne peux pas obtenir que cela fonctionne. Est-ce le bon cas d'utilisation .tous?

InformationsquelleAutor Jeff | 2014-09-17