2016-10-03 15 views
-1

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) return console.log(err); 
     travelTimes.push(data.ubication); 
    }); 
} 
console.log(travelTimes); 

そして、最後の行は私にundefinedを与えます。 Node.jsが非同期であるため、私の変数maps_dataはdistance.get()コールバックにしか存在しませんが、私は自分の仕事を続けるためにそのデータが必要です。どのように私はすべてのコードに生き生きとさせることができますか?ありがとう!!

答えて

0

コールバック以外で変数を使用するにはどうすればよいですか?

できません。
変数はそのコールバック内で定義され、そのコールバックのみが定義されています。
これは、ログにundefinedが記録されている理由です。

あなたの機能の中に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 
} 
関連する問題