Я хочу обновить эту функцию до асинхронного, но не могу получить объект пользователей, сопоставленный с объектом взаимодействий, для возврата данных в том же формате, и мои значения в асинхронной функции поступают на ноль клиента.В консоли я получаю только объект Promise и не определен.
Это мой рабочий код:
Interaction.findAll({
where: {
targetUserId: fbId,
status: 'invited'
},
order: [['createdAt', 'DESC']]
}).then(function (interactions) {
Promise.all(interactions.map(interaction =>
User.findOne({
where: {
facebookUserId: interaction.userId
},
attributes: ['firstName', 'facebookUserId', 'pictureUrl']
}))).then(function (users) {
res.status(200).send(users.map(user => user.dataValues));
})
},
Это то, что у меня есть, но мои данные не возвращаются клиенту в том же формате:
try {
const interactions = await Interaction.findAll({
where: {
targetUserId: userId,
status: 'invited'
},
attributes: ['lastReplyAt', 'seen', 'userId'],
})
const users = await interactions.map(interaction => User.findOne({
where: {
facebookUserId: interaction.userId
},
attributes: ['firstName', 'facebookUserId', 'pictureUrl'],
}))
res.status(200).send(users.map(user => user.dataValues));
}
catch (error) {
console.log(error);
res.status(500).send(error);
}
Если я возвращаю только объект пользователя, ошибка более конкретна и говорит, что firstName равно nil.Возврат отображенного пользователем объекта дает мне ключевую ошибку.