javascript - 如何在 promise 链中传递变量?

标签 javascript node.js

我有这个 promise 链。在第二个 promise 中,我需要用户,它由 user.save 返回。我怎样才能在不破坏 promise 链的情况下得到它?我需要它是一个链,因为我需要最后一个 promise 将正确的属性返回给调用函数时的 promise 。

我调用这样的方法:

User.createRider(req.query).then((user) => {
    res.json(user);
});



User = sequelize.define('user', {},{
    classMethods: {
        createRider: function(params) {
            var values = [],
                userAttributes = sequelize.models.userAttributes,
                user = User.build(),
                name = userAttributes.build({name: 'name', value: params.name}),
                fbprofile = userAttributes.build({name: 'fbprofile', value: params.fbprofile}),
                phone = userAttributes.build({name: 'phone', value: params.phone});

            user = user.save()
                    .then(sequelize.Promise.all([
                            fbprofile.save(),
                            name.save(),
                            phone.save()
                        ])
                    )
                    .then((attributes) => {
                        user.addUserAttributes(attributes);
                        return user;
                    });
            return user;
        }
    }
});

最佳答案

如果我理解正确你需要什么,你可以尝试像下面这样的代码:

user = user.save()
    .then(savedUser => {
        return sequelize.Promise.all([
            fbprofile.save(),
            name.save(),
            phone.save()
        ])
        .then((attributes) => {
            console.log(savedUser); // this guy

            user.addUserAttributes(attributes);
            return user;
        });
    });

关于javascript - 如何在 promise 链中传递变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38037533/

相关文章:

c# - 如何给静态名称以将 JavaScript 文件作为资源嵌入到 asp.net 中

node.js - 使用 Node 模块 Nano 的临时 CouchDB View

javascript - $apply 使用时范围未更新

node.js - 如何安装 Node mysql?

javascript - 如何重置每个容器元素的自动编号标题计数?

javascript - iPad(第一代)上的 angularjs 错误

node.js - 如何用 rewire 模拟请求模块?

linux - 如何使用Node.JS在Linux中访问不同用户的文件并保留权限限制?

javascript - 在 MVC 中使用 JQuery Ajax 发布数组导致 500(内部服务器错误)

javascript - 通过 Promise 链传递变量