У меня проблема с функцией Promise.Я использую NodeJS + sequelizeJS
У меня есть функция Child Promise для получения User Data
в таблице auth_user
:
function sequelize_user (id_in) {
var promises = []
var querydb = `SELECT * FROM auth_user WHERE id IN (${id_in})`;
promises.push(
db.sequelize.query(querydb, { type: db.sequelize.QueryTypes.SELECT})
.then(res => {
return res
})
)
return Promise.all(promises);
}
И у меня есть функция Parent Promiseчтобы получить беседу, в которой есть участники в качестве пользователя.
function sequelize_conversation (conversation_id, req) {
var promises = [];
for (let id of conversation_id) {
promises.push(
db.ConversationPerson.findAll({ where: {'conversation_id': id, 'user_id': { [Op.ne]: req.user.user_id }} })
.then(participants => {
if (cvs_person.length) {
return {
'conversation_id': id,
'with_user': (function() {
sequelize_user(cvs_person.user_id)
.then(user => {
console.log(user) // -> { id: 1, username: 'feedgit' }
return user // -> {} ?????????
})
})()
}
} else {
return { 'conversation_id': id }
}
})
);
}
return Promise.all(promises);
}
В этом коде:
'with_user': (function() { sequelize_user([participants[0].user_id]) .then(user => { console.log(user); return user }) })()
Я хочу получить User
с помощью функции Child Promise sequelize_user
, но этовозвращает {}
.Это не правда.
Что не так с моим кодом?Я думаю, это из-за неправильного вызова функции Promise.