Javascript 如何在回调外部使用变量
我对Node.js中变量的持久性有问题 我做这个例行公事:Javascript 如何在回调外部使用变量,javascript,node.js,Javascript,Node.js,我对Node.js中变量的持久性有问题 我做这个例行公事: var travelTimes; for(var i = 0; i < data.length; i++){ distance.get( { origin: hotel, destination: data[i].ubicacion, language: 'es' },function(err, maps_data) { if (err) r
var travelTimes;
for(var i = 0; i < data.length; i++){
distance.get(
{
origin: hotel,
destination: data[i].ubicacion,
language: 'es'
},function(err, maps_data) {
if (err) return console.log(err);
travelTimes.push(data.ubication);
});
}
console.log(travelTimes);
var旅行时间;
对于(变量i=0;i
最后一行给出了未定义的。我在搜索时发现,由于Node.js是异步的,所以我的变量映射_data
只存在于距离.get()回调中,但我需要这些数据来继续我的工作。我怎样才能让它在我所有的代码中生存?谢谢
如何在回调之外使用变量
你不能这样做。
变量在该回调内部定义,并且仅在该回调内部定义。
这就是它记录未定义的的原因
您可以通过将console.log()
放在函数中来修复它
var travelTimes;
for(var i = 0; i < data.length; i++){
distance.get(
{
origin: hotel,
destination: data[i].ubicacion,
language: 'es'
},function(err, maps_data) {
if (err) return console.log(err);
travelTimes.push(data.ubication);
console.log(travelTimes); // Now it's inside the callback
});
}
var旅行时间;
对于(变量i=0;i