forループを実行し、終了後にforループの結果をコールバックする関数があります。私の問題は、このforループ関数では、コールバックを持っている2つの関数があり、それらが両方とも終了する(おそらくそれ以下)ために約0.5秒かかるということです。適切なデータで呼び出しを行うと、結果配列は終了後に呼び出されますが、ユーザー名は一意ですが、画像は同じで、私が望んでいないものです。私はこれがJSが非同期にしようとしていることと関係があると信じていますが、ただ壊れています。forループの関数コールバックに関する問題
function forCallback(rows, callback){
var done = 0;
for(i = 0 ;i < rows.length; i++){
var steamid = rows[i].steamid;
userinfo.getUserName(steamid, function(name){
userinfo.getUserPicture(steamid, function(picture){
results.push({
name: name,
picture: picture
})
done++;
console.log("Queried " + done + " username(s)")
if(done == (rows.length)){
callback(results);
}
});
});
}
}
関数は、SQLの列に取り、あなたが思っていたならば仕方のデータを解析します。ここに私のコードです。どんな助けもありがとう、ありがとう!!!
あなたはIFFEでループのものをラップしようとしましたか? – JordanHendrix
このexplantion(ループ内の段落Closures)を見てください:http://bonsaiden.github.io/JavaScript-Garden/#function.closures – wawawoom