node.js - 如何使用 sequelize.js 返回结果?

标签 node.js sequelize.js

var userid = 7;
var um;

sequelize.query("select user_money from ecs_users u where u.user_id = ?", {replacements: [userid], type: sequelize.QueryTypes.SELECT}).then(function(data) {
  console.log('Inside um is '+data[0].user_money);
  um = data[0].user_money;
});

//how to get the result at here ???
console.log('Outside um is '+um);
console.log('testtesttest');

结果
Outside um is undefined

testtesttest

info: Executing (default): select user_money from ecs_users u where u.user_id = 7

Inside um is 0.01

如何在外面得到结果?

最佳答案

sequelize.query() 是一个异步函数。如果你想使用结果,你应该在promise链内部使用,而不是在外部使用。无论如何,您无需可靠地知道 query() 运行需要多长时间。

如果您绝对必须在 promise 链之外使用它,请创建一个 bool 值,告诉您是否已经获得结果。只有在 promise 链中有结果时才将 bool 值设置为 true。在 promise 链之外,您可以检查 Boolean 的值并决定是要等待(例如,使用 setTimeout() 重试)还是忽略或抛出错误或其他。

关于node.js - 如何使用 sequelize.js 返回结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29886706/

相关文章:

postgresql - 对生成无效查询的 JSONB 对象进行后续 Postgres 查询

html - 如何在 Node.js 中发出事件名称是动态的?

ios - FCM - node.js 中的定时器功能

javascript - 带有 promise.catch 和 console.log 的 NodeJS 错误?

asynchronous - 如何在不修改ulimit的情况下处理nodejs EMFILE异常?

javascript - 如何使用 sequelize 从 sqlite 中的现有表中查询

sequelize.js - 在 findAll 中包含多个模型关系

javascript - Node.js 应用程序中的 SequelizeConnectionError

node.js - Node Sass 找不到当前环境的绑定(bind) : Windows 64-bit with Node. js 6.x

node.js - 附加属性 Sequelize 枢轴 n :m