我已经阅读了一些与此相关的主题,但没有帮助,或者我无法使它们工作。我有:
exports.findBookRating = (book) => {
var average;
Review.findAll({
where: {
bookId: book.id
},
attributes: [[sequelize.fn('avg', sequelize.col('rating')), 'avg_rated']],
raw: true
})
.then(number => {
average = number[0].avg_rated;
console.log(average); //this works
})
.catch(err => {
console.log(err);
});
console.log(average) // this does not work
}
我想返回 number[0].avg_rated,这就是为什么我创建了那个平均变量但它不起作用,你能帮我吗?谢谢!
最佳答案
“Promise.findA”是异步的,而其余的是同步的。您的最后一行将在您的 Promise 解决之前执行,从而返回“未定义”。
关于node.js - 在 promise.then 中返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56501023/