我无法访问MySQL查询回调中的forth_matches数组,怎么回事?
我在console.log上遇到'TypeError:无法读取属性'1'的'null'错误消息(coming_matches [1]);表示由于某种原因重置变量的行(猜测,我对Javascript不是很熟悉)?
var regex = regex code..
while ((upcoming_matches = regex.exec(body)) != null) {
HLTVID = upcoming_matches[1].split("-");
connection.query('SELECT * FROM `csgo_matches` WHERE HLTVID=' + HLTVID[0], function(err, rows, fields) {
if (err) throw err;
console.log(upcoming_matches[1]);
});
}
答案 0 :(得分:3)
因为目前执行了传递给connection.query
的回调,while
循环已经完成且upcoming_matches
为null
(因为这是{{1}的条件循环停止)。
while
异步。
请参阅Why is my variable unaltered after I modify it inside of a function? - Asynchronous code reference