0

JavaScriptはよくわかりません。グローバル変数を定義できません。

var data = 'empty';

connection.query('SELECT * FROM deneme',function(err, rows, fields){
    if (err) throw err;
    data = rows;
});

console.log(data);

通常、コンソールは行のデータを返す必要がありますが、「空」を返します。関数内から行をクエリするにはどうすればよいですか? グローバル変数を定義するにはどうすればよいですか?

4

1 に答える 1

1

機能しない理由はconsole.log、非同期コード ブロックの外にいるためです。基本的に何が起こっているかは次のとおりです。

  1. dataに設定されていemptyます。
  2. connectionデータベース要求を発行します。
  3. console.log火災(その時点である)data;empty
  4. データベース応答が受信されました。
  5. コールバックが発生します。
  6. dataに設定されていrowsます。

したがって、必要なものを取得するには、console.logステートメントを非同期ブロック コード内に配置するだけです。

var data = 'empty';

connection.query('SELECT * FROM deneme',function(err, rows, fields){
    if (err) throw err;
    data = rows;
    console.log(data);
});
于 2012-12-02T11:43:52.197 に答える