使用Bluebird手动实现pg.connect

使用Bluebird手动实现pg.connect,第1张

使用Bluebird手动实现pg.connect

丢掉所有可怕的回调代码,然后在应用程序初始化的某个位置执行此 *** 作:

var pg = require("pg");var Promise = require("bluebird");Object.keys(pg).forEach(function(key) {    var Class = pg[key];    if (typeof Class === "function") {        Promise.promisifyAll(Class.prototype);        Promise.promisifyAll(Class);    }})Promise.promisifyAll(pg);

以后在任何地方都可以使用pg模块,就好像它被设计为使用promises开头:

// Later// Don't even need to require bluebird herevar pg = require("pg");// Note how it's the pg API but with *Async suffixpg.connectAsync(...).spread(function(connection, release) {     return connection.queryAsync("...")         .then(function(result) { console.log("rows", result.rows);         })         .finally(function() { // Creating a superfluous anonymous function cos I am // unsure of your JS skill level release();         });});


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5477099.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存