【发布时间】:2015-09-16 00:26:59
【问题描述】:
我想知道这种方法是否正确或是否需要进一步改进,也许还可以承诺自定义 mySQL getConnection 方法???
request: function(queryRequest) {
return new Promise(function(resolve, reject){
Database.getConnection(function(error, connection){
if(error) {
reject({error: error, queryRequest: queryRequest});
} else {
connection.query(queryRequest.sql, queryRequest.values, function(error, rows, fields){
if(error) {
reject({error: error, queryRequest: queryRequest});
} else {
resolve({rows: rows, fields: fields, queryRequest: queryRequest});
}
});
}
});
});
},
Database 模块中定义的getConnection 方法。
getConnection: function(callback) {
this.pool.getConnection(function(error, connection){
callback(error, connection);
});
},
【问题讨论】:
-
啊,在我评论之前你已经修复了
reject(error, queryRequest):-) -
我推荐一个带有连接池的 disposer pattern 或 Promise 库的内置设施(
usingin bluebird) -
node-mysql-promise提供了node-mysql的承诺版本。 -
也就是说,这是基于意见的,所以我投票结束,欢迎您在此处的 JavaScript 聊天或 IRC 上的#promises 中讨论此问题。
-
你用的是什么 promise 库?
标签: javascript node.js asynchronous promise