Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript回调中不断出现相同的值_Javascript_Node.js_Callback_Node Mysql - Fatal编程技术网

Javascript回调中不断出现相同的值

Javascript回调中不断出现相同的值,javascript,node.js,callback,node-mysql,Javascript,Node.js,Callback,Node Mysql,我在Node.js中有以下代码 function homeCallback(reply, twid) { var c = reply.length; for (var i = c - 1; i >= 0; i--) { var isRT; var tweet_id; if (reply[i].hasOwnProperty('retweeted_status')) { tweet_id = reply

我在Node.js中有以下代码

function homeCallback(reply, twid) {
    var c = reply.length;

    for (var i = c - 1; i >= 0; i--) {
        var isRT;
        var tweet_id;

        if (reply[i].hasOwnProperty('retweeted_status')) {
            tweet_id = reply[i].retweeted_status.id_str;
            isRT = true;
        } else {
            tweet_id = reply[i].id_str;
            isRT = false;
        }

        console.log(tweet_id);
        var existsQ = "SELECT * FROM tweets WHERE tweet_id=" + connection.escape(tweet_id);

        connection.query(existsQ, function (err, rows) {
            console.log(tweet_id);
            //need to use tweet_id here
        });
    }
}
reply是来自对Twitter的API的调用的json响应,connection是一个连接

如果有两条ID分别为11和12的tweet回复,我会得到如下输出:

11
12
12
12
11
12
11
12
尽管我期望得到如下输出:

11
12
12
12
11
12
11
12

connection.query()
上的回调将异步执行,而for循环中作用域的局部变量
tweet\u id
可能会被下一次迭代覆盖

尝试在闭包/函数调用中复制tweet_id

(function(tid) {
        console.log(tid);
        var existsQ = "SELECT * FROM tweets WHERE tweet_id=" + connection.escape(tid);

        connection.query(existsQ, function (err, rows) {
            console.log(tid);
            //need to use tweet_id here
        });
})(tweet_id);

这并不理想,但会给你一些想法。

什么是
c
?我看不到它在任何地方被定义?哎呀,我删除了那一行。添加回来。你能用这个代码来演示吗?我不能,因为连接可能你可以用一些
罐装的
数据来演示。