var x = undefined; db.query(xx, function(e, r, f){ x = r; console.log(‘1’ + x);}); console.log(‘2’ + x);
先打印了2, 再打印了1
是异步的。
额, 那做分页岂不是要 db.query(xx, function(){ db.query(xx, function(){ }); }); 这么写了 -_-
@Tkk你可以用同步的方法呀
@Tkk 不然怎么写…其实用async 就行了…
@zhouaini528 求教怎么用同步
@Tkk node 写着写着,不就写成这样了…………
使用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);
必须经过的坎儿
同样,觉得这样很坑啊…
不异步,node作甚?楼上的那个建议楼主用Async的,你确定Async能帮到楼主么?
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
是异步的。
额, 那做分页岂不是要 db.query(xx, function(){ db.query(xx, function(){ }); }); 这么写了 -_-
@Tkk你可以用同步的方法呀
@Tkk 不然怎么写…其实用async 就行了…
@zhouaini528 求教怎么用同步
@Tkk node 写着写着,不就写成这样了…………
使用EventEmitter封装更好 定义:
使用:
必须经过的坎儿
同样,觉得这样很坑啊…
不异步,node作甚?楼上的那个建议楼主用Async的,你确定Async能帮到楼主么?