0
これは私の最初の質問ですので、正しく進めないと申し訳ありません。これが起こったら教えてください。forループの範囲外のインデックスですが、(間違った)作業
私は馬鹿げて簡単にループに夢中になっています。
変数res
は、条件を満たすIDがJSON配列として保存されるSQLクエリの応答です。 JSON.stringify(res)
は[{"id":1},{"id":2}]
を返します。ここでは、コードは次のとおり
for(var ii = 0; ii <= res.length-1; ii++){
console.log("res[ii].id: "+res[ii].id); //throws the correct message on console, so ii=1 first and later ii=2.
laDatabase.all("SELECT * FROM Movies WHERE Movies.id="+res[ii].id+";", function(err, resMovies){
console.log("resMovies: "+JSON.stringify(resMovies)); //throws the correct message on console, the sql sentence is correct and runs without problem
if(err){
console.log("Error en 'SELECT * FROM Movies WHERE Movies.id="+res[ii].id+";'");
return;
}else{
//I tried to move the response of the sql query to the array I'll return. At this point, ii=2 always
console.log("ii: "+ii);
jsonArrayRespuesta[ii] = resMovies[0];
console.log("jsonArrayRespuesta: "+JSON.stringify(jsonArrayRespuesta));//resMovies[0] is saved in jsonArrayRespuesta[2] both times
console.log("length of jsonArrayRespuesta: "+jsonArrayRespuesta.length);//this shows 3, obviously...
}//if-else
});//Movies
}//for
ので、私は混乱している:ループII内部の一点-At 各反復を変更し、それ以外では常に2 -2 VAR = 0 IIの外にあります。 ii < = res.length-1;プログラムが実行されます。
誰かが私に何が間違っているのか、なぜ教えてもらえますか?ありがとうございました。
「雑誌」とは何ですか? –
コールバック関数が発生するまでにループが停止します。 Javascriptの "クロージャ"を読んでください。 –