Async.series被说成是顺序执行的功能,但它不适合我,async.series如何执行它的功能?
我的代码:
var mysql=require('mysql');
var async=require('async');
var con;
var EID=30;
var res;
async.series([
function(callback) {
console.log("inside first func");
con = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'imd2'
});
callback();
},
function(callback) {
console.log("inside second function");
var sql = "select EName from users where EID=" + EID;
con.query(sql, function(err, rows) {
console.log("inside query");
res = rows;
});
callback();
}
],
function(err) {
console.log("third function");
if (err)
return next(err);
console.log(res);
});
console.log("hi");
和我的输出是
inside first func
inside second function
third function
undefined
hi
inside query
如果我改变第二函数的回调内con.query() 然后输出更改为
inside first func
inside second function
hi
inside query
third function
[ RowDataPacket { EName: 'AndhraPradesh' } ]
我的预期输出是
inside first func
inside second function
inside query
third function
[ RowDataPacket { EName: 'AndhraPradesh' } ]
hi
纠正我,如果我错了,但功能(错误)应该在最后被调用,然后在“喜”应显示正确的?(从给出的定义) 我应该怎么做才能获得预期的产出?
PS“喜”只是一个调试,会有非常重要的代码后进行async.series,它不会在里面async.series一个新的函数中最适合 感谢
console.log(“hi”);不在async.series调用中,如果需要在以下函数中强制执行调用,则应使用async.series –
这些异步系列管理内部顺序好吧,您刚刚忽略了PS。部分,事情是,console.log(“hi”)被一系列默认同步的函数和语句所取代,并且不需要额外更改,如果我需要将所有函数内部的async合并到第二个函数,我相信这将是一个糟糕的质量计划。这个问题的症结在于sectond函数,我相信在使mysql查询语法同步时可能会有不同的解决方法。 –