Javascriptでimage.onload()内でカウンターが思い通りにならない場合


Javascriptの繰り返しfor文内でimg.onloadをすると、カウンター変数が思うように取得できないことがある。
たぶんonloadして待ってる間にカウンターが回ってしまっているため。
そういう場合は、img.onloadに現在のカウンター値を引数として渡してやる。

// NG:
for(let index = 0; index < 100; index++){
  let img = new Image();
  img.src = '/pathTo/image.jpg';
  img.onload = function() {
    console.log(index);// ★It doesn't go as expected
  }
}

// OK:set parameter
for(let index = 0; index < 100; index++){
  let img = new Image();
  img.src = '/pathTo/image.jpg';
  img.onload = function() {
    console.log(index);
  }(index);// ★parameter
}