私は次のコードを持っています:
var options1 = {
host: 'maps.googleapis.com',
port: 80,
path: "/maps/api/geocode/json?latlng=" + lat + "," + lng + "&sensor=false",
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
};
var body1 = "";
var req = http.request(options1, function(res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {
//console.log('BODY: ' + chunk);
body1 += chunk;
});
res.on('close', function () {
console.log('get_zillow : ' + body1);
});
});
req.on('error', function(e) {
console.log('problem with request: ' + e.message);
});
req.end();
console.log('get_zillow : ' + body1);
body1にJSON応答の結果を入力する必要があります。ただし、最初のconsole.log('get_zillow : ' + body1);
呼び出しは呼び出されず、何らかの理由で結果が閉じられることはありません。2番目のconsole.log('get_zillow : ' + body1);
呼び出しは非同期であり、body1
入力される前に呼び出されるため、何も出力されません。
さらに、異なる外部サイトに対して同様のリクエストを連続して数回行う必要があります。各リクエストは、前の結果のjsonに依存しています。3つの厄介な内部コールバックを記述せずにこれを行う方法はありますか?そしてどういうわけかhttpリクエストの後にブロックしますか?