別の問題からデータを取得できません...私は2つの機能を持っている:F1すべてには、forループ
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);
},
はokです。私がconsole.log(free)
またはconsole.log(data.rotation)
と呼ぶなら、私は望むアレイを手に入れました。
機能2は少し問題があります。データはforループの外側では利用できません。ループ外でconsole.log(data.rot)
またはconsole.log(x)
と呼ぶと、それは定義されていないと言われているので、ハンドルバーでは手に入れられません。コールバック(NULL、データ)の位置か、for-loopかどうかはわかりません。私はそれだけでは対処できません。
for-loop以外のデータへのアクセス方法、およびこのコードの修正方法を教えてください。
ループ内で非同期リクエストを作成していて、ループ外で返される値にアクセスすることができます.. 'for-loop'は同期ですが、リクエスト'それは内部で作られている...' Promise.all'はあなたを助けることができます.. – Rayon