首先向到来的各位表示感谢!
我的程序大概是这样子的,我现在应该在哪里db.end()呢:
var mysql = require('mysql');
var db = mysql.createClient();
fn1();
fn2();
function fn1(){
db.query('select * fro table1', function(error, rows){
rows.forEach(function(row){
db.query('update table set field=? where id=?', [value, row.id]);
});
});
}
function fn2(){
db.query('select * from table2', function(error, rows){
rows.forEach(function(row){
db.query('update table2 set field=? where id=?', [value, row.id]);
});
});
}
17 回复
//函数改成支持回调的方式
var f1 = function (callback) {
setTimeout(function () {
console.log('1')
callback()
},1000)
}
var f2 = function (callback) {
setTimeout(function () {
console.log('2')
callback()
},1000)
}
//用一个类 管理函数队列
//一个简单的实现 有个叫Async的库就是干这个的
function Async (fns) {
this._fns = fns
}
Async.prototype.next = function() {
if(fn = this._fns.shift()){
fn (this.next.bind(this))
}else{
console.log('搞完了')
}
};
async = new Async([f1,f2])
async.next()