JavaScript 承诺不返回对象

JavaScript Promises Not Returning Object

我有一个问题,我使用 Sequelize 来 运行 一个查询,然后在第一个语句中 return 对象然后 运行 一个不同 [=18] 的查询=].在该查询是 运行 之后,我有一个额外的 then 语句应该传递 returned 对象以便能够在我的视图中访问。不幸的是,第二个查询没有 return 对象作为第二个日志的控制台日志 returns undefined(检查 console.log(member))。发生这种情况或我做错了什么的任何原因?查询返回正确的语句。

appRoutes.route('/settings/add-users')

    .get(function(req, res){
        models.Organization.find({
            where: {
                organizationId: req.user.organizationId
            }, attributes: ['organizationId', 'organizationName','admin','members']
        }).then(function(organization, member){
            models.Member.findAll({
                where: {
                    organizationId: organization.organizationId
                }, attributes: ['memberEmail']
            });
            return organization;
        }).then(function(organization, member){

            console.log(organization);
            console.log(member);
            res.render('pages/app/add-users.hbs',{
                user: req.user,
                organization: organization,
                member: member
            });
        }).catch(function(error){
            res.send(error);
            console.log(error);
        })
    });

一个承诺只能解决一个单一的价值。您从 then 再次返回 organization,因此下一个 then 将其作为其值。您可以使用一个对象来实现您想要的行为。

appRoutes.route('/settings/add-users')

    .get(function(req, res){
        var organization;

        models.Organization.find({
            where: {
                organizationId: req.user.organizationId
            }, attributes: ['organizationId', 'organizationName','admin','members']
        }).then(function(_organization){
            organization = _organization;
            return models.Member.findAll({
                where: {
                    organizationId: organization.organizationId
                }, attributes: ['memberEmail']
            });
        }).then(function(member){

            console.log(organization);
            console.log(member);
            res.render('pages/app/add-users.hbs',{
                user: req.user,
                organization: organization,
                member: member
            });
        }).catch(function(error){
            res.send(error);
            console.log(error);
        })
    });