Ich habe einige Probleme beim Erstellen einer HTTP-Anfrage innerhalb einer Schleife.Http Anfrage innerhalb einer Schleife
Lassen Sie mich erklären, was ich habe ....
Ich mache eine HTTP-GET einige Werte abzurufen, und dann brauche ich eine andere HTTP GET für jedes Paar von Werten zu machen, die ich von der ersten nur genommen haben anfordern.
Die zwei Anrufe sind in Ordnung, und wenn ich den for
Zyklus unterbringe und versuche, die ganze Anforderungskette zu laufen, funktioniert es tadellos, aber gerade einmal, seitdem ich den Zyklus entfernte. Wie kann ich es zum Laufen bringen?
Hier ist der Code:
request({
url: "some_url",
method: "GET",
json:true,
headers:[{'content-type': 'application/json'}]
}, function (error, response, body){
if(!error & response.statusCode === 200){
for(var i=0;i<body.length;i++){
for(var j=i;j<body.length-1;j++){
//if(i === body.length-1) return;
src = body[i].name;
dest = body[j+1].name;
console.log("sorgente ",sorg);
request({
url: "https://maps.googleapis.com/maps/api/distancematrix/json?origins="+src+"&destinations="+dest,
method: "POST",
json:true,
headers:[{'content-type': 'application/json'}]
}, function (error, response, body){
if(!error & response.statusCode === 200){
console.log("TIME ",body.rows[0].elements[0].duration.text);
return;
}else{
console.log("google API failed!: ");
return;
}
});
}
}
}else{
console.log("/google_api failed!: ");
return;
}
});
Ich hoffe, ich war mit der Frage klar.
Siehe http: // stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-beispiel –