node.js - 在 promise.then 中返回值

标签 node.js express sequelize.js

我已经阅读了一些与此相关的主题,但没有帮助,或者我无法使它们工作。我有:

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/

相关文章:

node.js - Node : Read spawn stderr/stdout after quick exit event?

node.js - 同步运行 mocha 测试

javascript - 函数编写者如何调用 getByName 。功能

node.js - 使用 mongoose 查找多个文档

node.js - 如何在 NodeJS 中模拟嵌套依赖关系

javascript - 获取 Gulp.js 中目录中的文件数量?

javascript - MongoDB .find 在 shell 中有效,但在 js 中无效

methods - sequelize 实例和类方法替代方案

node.js - Sequelize 将 PSQL 设置为 VARCHAR(255),无论我是否告诉它 TEXT(2048) 或任何其他长度

express - 无法读取 Node 和 Sequelize 中未定义的属性 'findOne'