我正尝试通过以下方式从mysql DB查询中获取结果。我正在使用'q'并定义get_antiviruses方法。
var q = require('q');
function get_antiviruses()
{
var deferred = q.defer(); // Use Q
var connection = "db connection config"
connection.connect(function(err) {
if (err) throw err;
console.log("Connected!");
});
var query_str = "select * from antivirus limit 2";
var query = connection.query(query_str, function (err, rows, fields) {
if (err) {
deferred.reject(err);
}
else {
deferred.resolve(rows);
}
});
return deferred.promise;
}
,然后我尝试为graphql查询定义以下内容。我的问题是我无法从查询中返回结果,它始终为null,因为在返回时查询尚未完成。
antiviruses: {
type: AntivirusType,
resolve(parent, args){
return get_antiviruses()
.then(function(rows){
return rows;
},function(error){
console.log(error);
});
}
}
我该如何解决这种情况?