iveは、node.jsを使用して一連の都市を反復処理し、それぞれの方向をgoogleに反復要求します(次に、JSON.parseを使用して帰宅時間を抽象化します)。これを同期的に行う方法を見つける必要があります。そうしないと、各都市のgoogleにすべての情報を一度に要求するだけです。http://tech.richardrodger.com/2011/04/21/node-js-%E2%80%93-how-to-write-a-for-loop-with-callbacksで使用するのに適したパターンを見つけました/しかし、コールバックを機能させることができません。ご覧のとおり、imは「show」関数を使用して同じものをテストしています。私のコードは次のとおりです。
var request = require('request');
var fs = require('fs');
var arr = ['glasgow','preston','blackpool','chorley','newcastle','bolton','paris','york','doncaster'];
//the function I want to call on each city from [arr]
function getTravelTime(a, b,callback){
request('https://maps.googleapis.com/maps/api/directions/json?origin='+a+'&destination='+b+'®ion=en&sensor=false',function(err,res,data){
var foo = JSON.parse(data);
var duration = foo.routes[0].legs[0].duration.text;
console.log(duration);
});
};
function show(b){
fs.writeFile('testing.txt',b);
};
function uploader(i){
if( i < arr.length ){
show( arr[i],function(){
uploader(i+1);
});
}
}
uploader(0)
私が抱えている問題は、配列の最初の都市のみが出力され、コールバック/反復が続行されないことです。私がうまくいかないアイデアはありますか?