1

从异步中调用我的模块自己的方法时出现以下错误。

ReferenceError: RetriveLongitude is not defined
    at D:\Userfiles\oozen\Workspace\sas_1.0_server\sas_1.0\backgroundProcesses\searchTravelSolutions\PositionReferences.js:234:5
    at D:\Userfiles\oozen\Workspace\sas_1.0_server\sas_1.0\node_modules\async\lib\async.js:570:21
    at D:\Userfiles\oozen\Workspace\sas_1.0_server\sas_1.0\node_modules\async\lib\async.js:249:17
    at D:\Userfiles\oozen\Workspace\sas_1.0_server\sas_1.0\node_modules\async\lib\async.js:125:13
    at Array.forEach (native)

模块如下PositionReferences

var RetrieveCoordinates = function(tw, callback){

  async.parallel([function(callback) {
    RetrieveLatitude(tw, callback);
  }, function(callback) {
    RetriveLongitude(tw, callback);
  }
  ], function(err, coordinates) {
    if (err) {
      console.log('err occuured in Lattitude / Longitude retrieval : ' + err);
      return callback(err);
    }

    callback(null, coordinates);
  });

}

function RetrieveLatitude(tw, callback) {

  var latitude = JsonInfo.getLatitude(tw);
  // check if the user has already specified a place (e.g. Eiffel tower) in tw
  if (latitude != undefined) {
    return callback(null, latitude);
  }
  // get latitude of the airport from the DB
  db.collection('city').find({
    "information.airports.code": place
  }).toArray(function(err, position) {
    if (err) return callback(err);
    latitude = position['information']['city_coordinates']['latitude'];
    console.log("[PositionReferences-RetrieveLatitude] found" + Lat);
    return callback(null, latitude);    
  });
}
function RetrieveLongitude(tw, callback) {
  var longitude = JsonInfo.getLongitude(tw);
  // check if the user has already specified a place (e.g. Eiffel tower) in tw
  if (longitude != undefined) {
  return callback(null, longitude); }
  db.collection('city').find({
    "information.airports.code": place
  }).toArray(function(err, position) {
    if (err) return callback(err);
    city = postion['name'];
    longitude = position['information']['city_coordinates']['longitude'];
    console.log("[PositionReferences-RetrieveLatitude] found" + longitude);
    return callback(nulll, longitude);
  });
}
//module.exports.RetrieveLatitude = RetrieveLatitude;
//module.exports.RetrieveLongitude = RetrieveLongitude;
module.exports.RetrieveCoordinates = RetrieveCoordinates;

除了声明 : module.exports.RetrieveLatitude,

我也尝试过设置var that = this;和调用 Lat/Long 方法。

为什么这些都不起作用?

4

1 回答 1

2

你打电话RetriveLongitude,不是RetrieveLongitude

于 2015-02-10T10:13:54.973 回答