gpt4 book ai didi

mysql - 如何处理 nodejs 与 mysql 的异步?

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

社区,

我是 nodejs 的新手,现在我有一个我无法解决的问题:javascript/nodejs 中的异步。我该如何处理以下内容,以便将用户名推送到数组?

我已经尝试过使用许多不同的功能来帮助自己,但对我来说没有任何用处...:/

真诚的 Adhskid。

function getCurrentBetInformations () {
connection.query('SELECT * FROM `BETS` WHERE BET_ACTIVE = "1" LIMIT 1', function(err, rowss, fields) {

if (err) logger.warn('MySQL Error: ' + err.stack);

betid = rowss[0].BET_ID;
betends = rowss[0].BET_END;
connection.query('SELECT * FROM `BETS_BID` WHERE BID_BET_ID=\'' + betid + '\'', function(err, betbids, fields) {

if (err) logger.warn('MySQL Error: ' + err.stack);

var betQuants = new Array();
var betIds = new Array();
var betUsernames = new Array();
var betDates = new Array();
var rowsAffected = betbids.length;

for(i=0; i < rowsAffected; i++) {
betQuants.push(betbids[i].BID_KEYS_COUNT);
betIds.push(betbids[i].BID_ID);
var betSender = betbids[i].BID_SENDER;
connection.query('SELECT `USER_NAME` FROM `USER` WHERE `USER_STEAMID` = \'' + betSender + '\' LIMIT 1', function(err, rows, fields) {
if (err) logger.warn('MySQL Error: ' + err.stack);

console.log(rows[0].USER_NAME);
addUsername(rows[0].USER_NAME);
});
function addUsername (currentUsername) {
betUsernames.push(currentUsername);
}
betDates.push(betbids[i].BID_TIME);
if(betUsernames.length === i) {
execSiteRef();
}
}
function execSiteRef() {
console.log(betUsernames);
sendUserSiteRefresh([betQuants, betIds, betUsernames, betDates], betends);
}
});
});

最佳答案

我认为你的问题出在这部分:

if(betUsernames.length === i) {
execSiteRef();
}

您应该检查 betUsernames 数组是否为最终大小:

if(betUsernames.length === rowsAffected) {
execSiteRef();
}

也许还有更多的错误,我没有仔细检查。

关于mysql - 如何处理 nodejs 与 mysql 的异步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31504053/

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