0
// accept a callback function to execute after getting results...
function searchCoords(callback){
  var result = result;
  connection.query('SELECT * FROM monitoring', function(err, result){
    if(err){
      console.log(err);
    }
    // run the callback function, passing the results...
    callback({result: result});
  });
}

// call like this...
searchCoords(function(resultsObject){
    console.log(resultsObject.result)
});

それが私のコードです。コールバック関数を使用して外部に変数を返す匿名のネストされた関数があります。ただし、返される変数 (result) は、node.js の googlemaps API で使用する必要がある配列です。どうすればこれを回すことができますか:

searchCoords(function(resultsObject){
   console.log(resultsObject.result)
});

配列全体を含む変数に入れ、API の themarkers オプションから呼び出すことができます

4

2 に答える 2

0

わかりました、これは今のコードです:

function searchCoords(myCoords){
      var result = result;
      connection.query('SELECT * FROM monitoring', function(err, result){
        if(err){
          console.log(err);
        }
          myCoords.push({result: result});
      });
}

which i call from main.js like this:
function start() {
    var myCoords = {};
    myCoords = database.searchCoords(myCoords);
    console.log(myCoords);
    //otherFunction(myCoords); // This function does stuff with myCoords
}

これは私が取得しようとしているソリューションに近いですが、まだ機能しません..代わりに、コンソールが表示されます

TypeError: Object #<Object> has no method 'push'

匿名のネストされた関数によって得られた結果を取得し、それをより簡単に操作できる変数に変換する単純な関数が必要なので、Google マップ API のマーカー パラメータに追加できます。

于 2014-02-06T19:42:52.790 に答える