如果某个方法是带有单个参数的节点“
errback”-它将在中没有任何参数地进行解析,
then或者
err通过传递给它而被拒绝。如果是promisification,则可以使用
.error或使用
Promise.OperationalError。
这是一个简单的方法:
function getConnection(){ var connection = mysql.createConnection({ host : 'localhost', user : 'me', password : 'secret' }); return connection.connectAsync().return(connection); // <- note the second return}getConnection().then(function(db){ return db.queryAsync(....);}).error(function(){ // could not connect, or query error});
如果这是用于管理连接-我会使用
Promise.using-这是API的示例:
var mysql = require("mysql");// uncomment if necessary// var Promise = require("bluebird");// Promise.promisifyAll(mysql);// Promise.promisifyAll(require("mysql/lib/Connection").prototype);// Promise.promisifyAll(require("mysql/lib/Pool").prototype);var pool = mysql.createPool({ connectionLimit: 10, host: 'example.org', user: 'bob', password: 'secret'});function getSqlConnection() { return pool.getConnectionAsync().disposer(function(connection) { try { connection.release(); } catch(e) {}; });}module.exports = getSqlConnection;
这会让你做:
Promise.using(getSqlConnection(), function(conn){ // handle connection here, return a promise here, when that promise resolves // the connection will be automatically returned to the pool.});
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)