我遇到了 Sails.JS 0.9.8 的问题。 我想在 Model.query() 函数中使用 Promise(我使用sails-mysql 适配器)。
此代码将起作用:
User.findOne({ email: email })
.then(function(user) {
console.log(user);
});
但这个不会
User.query("SELECT email FROM user WHERE email = ?", [ email ]))
.then(function(err, rows) {
console.log(rows);
})
'err' 和 'rows' 都未定义。
只是没有实现还是我做错了什么? 如果没有实现,是否有任何替代方法可以将 Promise 与 .query() 一起使用?
提前谢谢你
最佳答案
您可以自己promisify(User.query)
,就像您对任何其他基于回调的 API 所做的那样,例如:
var Promise = require('bluebird');
....
var userQueryAsync = Promise.promisify(User.query);
userQueryAsync("SELECT email FROM user WHERE email = ?", [ email ])
.then(function(user) {
console.log(user);
});
关于javascript - 如何在 SailsJS/Waterline 中使用 Model.query() 和 Promise?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21886630/