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/