2
同步SQL查詢
通常情況下,我們執行一個SQL查詢,得到的結果在回調中。像這樣:
sqlExec('SELECT COL FROM TBL;', function (err, results, fields) {
doSomething(results);
});
但是,如果我們需要與SQL結果做更復雜的工作,代碼會更加醜陋,就像這樣:
var tmp = '';
sqlExec('SELECT COL1 FROM TBL1;', function (err, results, fields) {
tmp = doSomething(results);
sqlExec('SELECT COL2 FROM TBL2 WHERE CONDITION2 = ' + tmp + ';', function (err, results, fields) {
tmp = doSomething2(results);
sqlExec('SELECT COL3 FROM TBL3 WHERE CONDITION3 = ' + tmp + ';', function (err, results, fields) {
....
});
});
});
我們有一個想法,使之同步?像這樣:
var tmp = '', result = '';
result = sqlExec('SELECT COL1 FROM TBL1;');
tmp = doSomething(result);
sqlExec('SELECT COL2 FROM TBL2 WHERE CONDITION2 = ' + tmp + ';');
tmp = doSomething(result);
sqlExec('SELECT COL3 FROM TBL3 WHERE CONDITION3 = ' + tmp + ';');
...
感謝, Gcaufy
也許你應該看看Async.js https://github.com/caolan/async/ – Roest 2012-08-06 17:18:39
它看起來像e你所面對的主要問題是將異步請求鏈接在一起,而不需要所有的嵌套,對嗎? – jcolebrand 2012-08-06 17:49:31
是的,如果我們可以在不嵌套的情況下完成這些請求,那應該會更好。 – Gcaufy 2012-08-07 05:22:46