gpt4 book ai didi

mysql - 将数据存储在 MySQL block 中

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

 function liveFeed_update() { 
var symbol_in_table = "SELECT count (*) as total FROM livedata
wherescript_name = '"+s_symbol_script+"'";
con.query(symbol_in_table, function (err, result) {
if (err) {
throw err;
}
else {
num_row = + result[0].total;
console.log("Number of Rows in inner level:",+ num_row);
}
});
console.log("Number of Rows in outer level:",+ num_row);
}

Node.js 首先执行外部控制台日志,然后再执行内部。结果我没有得到正确的结果。

但是我想先执行sql查询,然后根据结果我想进一步进行。

最佳答案

请记住,Node.js 是异步,这意味着代码将无序运行,这与您用于同步(阻塞)代码的预期相反。

如果您需要使 num_row 递增并可靠地返回,您必须将其与以下之一链接在一起:回调、尾随 then 或使用 异步/等待

我鼓励您使用 Promise:

function liveFeed_update() { 
var symbol_in_table = "...";
var num_row = 0;

con.query(symbol_in_table).then(function(results) {
results.forEach(function(result) {
num_row = + result[0].total;
console.log("Number of Rows in inner level:", num_row);
});
}).then(function() {
console.log("Number of Rows in outer level:",+ num_row);
});
}

同样的事情也可以通过回调来完成,但是这会变得很棘手,通常取决于 async图书馆。

如果您可以使用 async/await 原生 Node.js 功能,那就更容易了,让您的异步代码感觉更像传统的同步代码:

async function liveFeed_update() { 
var symbol_in_table = "...";
var num_row = 0;

var results = await con.query(symbol_in_table);

results.forEach(function(result) {
num_row = + result[0].total;
console.log("Number of Rows in inner level:", num_row);
});

console.log("Number of Rows in outer level:",+ num_row);
}

关于mysql - 将数据存储在 MySQL block 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51868629/

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