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)
});

那是我的代码,我有一个匿名嵌套函数,它通过使用回调函数将变量返回到外部。但是,返回的变量(结果)是一个数组,我需要在 node.js 中与 googlemaps api 一起使用。我怎么能把这个:

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

到一个包含整个数组的变量中,所以我可以从 api 中的标记选项调用它

4

2 回答 2

0

与其将回调传递给函数,为什么不传递一个可以附加到的数组?

function start() {
    var myCoords = [];
    searchCoords(myCoords);
    otherFunction(myCoords); // This function does stuff with myCoords

}

function searchCoords(myCoords){
  connection.query('SELECT * FROM monitoring', function(err, result){
    if(err){
      console.log(err);
    }
    else {
      myCoords.push({result: result});
    }
  });
}
于 2014-02-04T22:19:45.513 回答
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'

我需要一个简单的函数来获取匿名嵌套函数给出的结果并将其转换为我可以更轻松地操作的变量,因此我可以将它添加到谷歌地图 api 中的标记参数

于 2014-02-06T19:42:52.790 回答