var x = undefined; db.query(xx, function(e, r, f){ x = r; console.log(‘1’ + x);}); console.log(‘2’ + x);
先打印了2, 再打印了1
10 回复
使用EventEmitter封装更好 定义:
var EventEmitter = require('events').EventEmitter;
var util = require('util');
function MySQLQueue() {
EventEmitter.call(this);
this._db = /* 创建mysql连接实例 */;
}
util.inherits(MySQLQueue, EventEmitter);
MySQLQueue.prototype.getPage = function(page) {
var self = this;
this._db.query(page, function(er, list) {
if (er)
self.emit('error', er);
else
self.emit('page', list);
})
return this;
}
使用:
var mysql = new MySQLQueue();
mysql.on('page', function(list) {
/* TODO */
})
mysql.on('error', function(er) {
/* handle errors */
})
mysql.getPage(1).getPage(2);