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);
})
});
我有一个问题,我使用 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);
})
});