私は5つのずらした関数呼び出しを設定しようとしています(1秒間隔で起こっています)。その部分は正常に動作します。動作しないのは、0から4の値をコールバック関数に渡すことができないということです。それは毎回「5」を渡すだけです。私はそれを修正する理由と方法を理解できないようです。変数をsetTimeout関数に渡すにはどうすればいいですか?
コード:
function callback(num)
{
console.log(num);
}
for (var i = 0, loadDelay = 1000; i < 5; ++ i, loadDelay += 1000)
setTimeout(function() { callback(i); }, loadDelay);
結果:
5
5
5
5
5
望ましい結果:
0
1
2
3
4
コールバックの値をインクリメントします。 setTimeoutメソッドが非同期であるので、あなたは常に5 – malletjo