gpt4 book ai didi

javascript - res.send() 在 Node js中功能代码执行之前执行

转载 作者:行者123 更新时间:2023-11-29 06:02:07 25 4
gpt4 key购买 nike

我是 node js 的新手。在我的应用程序中,我正在查询 MySql 数据库并使用 Node js 处理和查看处理结果。如果我的查询返回空数据,那么我将执行另一个查询并执行该过程。但是我的 res.send(finaldate) 代码在功能过程完成之前被执行。如何解决这个问题。 res.send(finaldata) 在“do require stuff for finaldata”之前先执行;

var finaldata ={};
//first query
var result = connection.query('myquery', function(err, data_rows){
if(!err){
//second
//doing one more Query for some other records from DB (second query)
connection.query('myquery', function(err, rows, fields){
if(0 < rows.length){
finaldata = //do require stuff for finaldata
}
else{
//third
//do the second query with some condition
connection.query(queryText, function(err, rows, fields) {
finaldata = //do require stuff for finaldata
})
}
res.send(finaldata);

});
}

});

最佳答案

欢迎来到 NodeJS 和异步计算的世界!

问题是 res.send 在第二个 connection.query 完成之前执行。为了解决这个问题,您将 res.send 放在回调中。

var result = connection.query('myquery', function(err, data_rows) {
if (!err) {
//second
//doing one more Query for some other records from DB (second query)
connection.query('myquery', function(err, rows, fields) {
if (0 < rows.length) {
// do something
res.send( /* send something*/ );
} else {
//third
//do the second query with some condition
connection.query(queryText, function(err, rows, fields) {
// do something
res.send( /*send something*/ ); // 2nd res.send
})
}

});
}

});

关于javascript - res.send() 在 Node js中功能代码执行之前执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44155111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com