Ein weiteres Problem ... Ich habe 2 Funktionen:Daten können nicht aus for-Schleife
function(data, callback){ //F1
var URL = 'url';
request(URL, function(err, response, body) {
if(response.statusCode == 200){
var json = JSON.parse(body);
var chid = [];
for(var i = 0; i < json['champions'].length;i++){
chid.push(json['champions'][i].id);
}
data.rotation = chid;
free = chid;
callback(null, data);
}
});
},
function(data, callback) { //f2
for (var r=0; r<10; r++){
var URL = 'url';
request(URL,function(err, response, body) {
if(response.statusCode == 200){
var json = JSON.parse(body);
x.push(json.name);
data.rot = x;
}
})
}
callback(null, data);
},
Mit F1 alles in Ordnung ist. Wenn ich console.log(free)
oder console.log(data.rotation)
rufe, habe ich das Array, das ich will.
Funktion 2 ist ein bisschen problematisch. Daten sind außerhalb der for-Schleife nicht verfügbar. Wenn ich console.log(data.rot)
oder console.log(x)
außerhalb der Schleife anrufe, sagt es, dass es undefined ist, also kann ich es nicht mit Lenkstangen bekommen. Ich habe keine Ahnung, ob es um die Rückrufposition (null, Daten) oder um die for-Schleife geht. Ich kann das nicht alleine bewältigen.
Wie erhalten Sie Zugriff auf Daten außerhalb der for-Schleife, und wie Sie diesen Code beheben?
Sie machen 'asynchronous' Anforderungen in einer Schleife und den Zugriff auf _to BE_ zurückgegebenen Werte außerhalb der Schleife ..' for-loop' ist synchron, aber 'Anfragen 'gemacht werden drinnen sind nicht ...' Promise.all' könnte dir helfen .. – Rayon