相关疑难解决方法(0)

当一个promise依赖于另一个promise时,Bluebird的Promise.all()方法

我正在编写一些当前看起来像这样的代码,因为我的代码中有依赖项.我想知道是否有一种更简洁的方法来使用Promise.all()?这是我的伪代码:

        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
            });
Run Code Online (Sandbox Code Playgroud)

重要的是我需要用户才能为getUserProps()和getUserFriends()进行第二次调用.我以为我可以这样使用Promise.all():

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
})
Run Code Online (Sandbox Code Playgroud)

但我不能让这个工作.这是正确使用的案例.all?

javascript promise bluebird

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

bluebird ×1

javascript ×1

promise ×1