nodejs使用mysql执行顺序

时间:2016-08-14 21:01:46

标签: mysql node.js

    conn = mysql.createConnection(options);
    conn.connect();
    var sql = 'select * from member';

    for(var i=0; i<3; i++){
      (function(){
        console.log(i);
        conn.query(sql, function(err,result){
          console.log('q');
        })
      })(i)
     }
      for (var i=0; i<2; i++){
        console.log(i)
      }

我正在使用npm-mysql。 我预计控制台会显示&#39; 012qqq01&#39;,但实际上我得到了&#39; 01201qqq&#39;。 我很困惑。为什么&#39; conn.querry&#39;最后执行?提前谢谢。

1 个答案:

答案 0 :(得分:0)

您有一个记录i的函数,然后在循环中将查询发送到数据库,并通过另一个循环记录日志。该功能运行。

在此过程中,或者在完成后的某个时间,查询结果将从数据库发回。

当JS引擎忙于运行第一个函数时,它将开始检查指示来自数据库的响应的事件是否已到达。然后它将调用回调函数并记录&#39;。