如何在SailsJS/Waterline中使用Model.query()和promises?

Yan*_*nnP 11 javascript node.js promise sails.js waterline

我遇到了Sails.JS 0.9.8的问题.我想在Model.query()函数中使用promises(我使用sails-mysql adapter).

此代码将起作用:

User.findOne({ email: email })
.then(function(user) {
  console.log(user);
});
Run Code Online (Sandbox Code Playgroud)

但这个不会

User.query("SELECT email FROM user WHERE email = ?", [ email ]))
.then(function(err, rows) {
  console.log(rows);
})
Run Code Online (Sandbox Code Playgroud)

我对"错误"和"行"都没有定义.

它只是没有实施或我做错了什么?如果没有实现,是否有任何替代使用.query()的promises?

先感谢您

Ste*_*let 25

您可以promisify(User.query)自己,就像您为任何其他基于回调的API所做的那样,例如:

var Promise = require('bluebird');
Run Code Online (Sandbox Code Playgroud)

....

var userQueryAsync = Promise.promisify(User.query);
userQueryAsync("SELECT email FROM user WHERE email = ?", [ email ])
.then(function(user) {
    console.log(user);
});
Run Code Online (Sandbox Code Playgroud)

  • 非常好 - 我们现在从sails文档中的`.query()`的参考页面链接到这里. (2认同)