【发布时间】:2015-07-24 08:34:43
【问题描述】:
我正在编写一个简单的应用程序,它从 Google Maps Geocoding API 获取一些地理编码数据。我正在尝试使用 async.each()(来自this package)函数中的节点地理编码器(this package)获取地址数组(以字符串形式)的这些数据:
async.each(entries, function(entry, callback) {
geocoder.geocode(entry.address, function(err, res) {
resultCheck.push(res);
var point = {
address: entry.address,
coordinates: {
latitude: res.latitude,
longtitude: res.longtitude
}
};
pointSet.points.push(point);
callback();
}, function(err) {
if(err) { errorArray.push(err); }
});
});
测试表明 async 函数处理数组的每个成员,但 geocode 函数什么也不做(resultCheck 和 errorArray 在请求响应中广播)。
作为一个几乎完全是 JavaScript 菜鸟,我还想问一下 - 这种方法是否接近正确?
欢迎任何见解,提前致谢。
编辑:似乎异步函数没有等待 GM API 的响应,必须着手处理,如果我克服了这个问题,就会发布。
【问题讨论】:
标签: javascript node.js google-maps asynchronous