使用回调响应作为另一个函数参数

时间:2015-08-13 21:03:09

标签: node.js asynchronous callback

我正在使用地理编码器API,它会在回调中返回结果

data = data ? data : {} // if not given initialize to empty
geocoder.geocode('Kathmandu, Nepal' , function(err, res) {
data.lat = res[0].latitude;
data.lng = res[0].longitude;
});

并使用数据object构建Geopoint

here = new GeoPoint(here); // data is still {} here

我的问题是如何在上面的场景中使用来自回调的响应?

1 个答案:

答案 0 :(得分:1)

geocode方法是异步的 - 因此您要对响应做的任何工作都需要在回调中:

geocoder.geocode('Kathmandu, Nepal' , function(err, res) {
    data.lat = res[0].latitude;
    data.lng = res[0].longitude;

    here = new GeoPoint(here); //HAS TO BE IN A CALLBACK 
    //- or passed to another function from within the callback
});