我正在尝试编写一个执行两个查询的函数,并希望能够访问最终代码块中的两个记录集;我的代码看起来类似于:
295 connection.query(sql1, function selectDb(err, results, fields) {
296 if (err) {
297 throw err;
298 }
299
300 result = results[0];
301 console.log(result);
302
303 console.log(sql2);
304 connection.query(sql2, function selectDb(err, results, fields) {
305 if (err) {
306 throw err;
307 }
309 console.log(result);
问题是var结果保留第一个记录集,直到第二个查询@ 304之后,并显示'undefined'@ 309(在之前的显示中设置了记录)。
我不知道如何将第一个记录集值传递给内部代码异步代码块@304;试图将结果添加为参数;
304 connection.query(sql2, function selectDb(err, results, fields, result) {
结果仍未定义@ 309
帮助表示赞赏。
答案 0 :(得分:3)
??? // variables sql1, sql2 need to be defined prior to the code below 295 connection.query(sql1, function(err, results1, fields1) { 295.1 var result; // dont make result a global 296 if (err) { 297 throw err; 298 } 299 300 result = results1[0]; 301 console.log(result); 302 303 console.log(sql2); 304 connection.query(sql2, function(err, results2, fields2) { 305 if (err) { 306 throw err; 307 } 309 console.log(result); 310 console.log(results1); 311 console.log(results2); 312 }); 313 });
答案 1 :(得分:0)
将变量名称从result更改为app;现在有效;必须对标签'结果'有些神奇;使用mysql.Connection。