루프에서 setTimeout의 함수 호출에 문제가 있습니다.
함수에 전달 된 매개 변수는 각 반복마다 루프에서 계산 된 마지막 값입니다. 아래 예제를 참조하십시오.
Javascript : setTimeout 및 참조의 함수
for(var i=0; i<datesYM.length; ++i) {
console.log(datesYM[i]);
var dateYM = datesYM[i];
setTimeout(function() {
myDB.markMonthsValuesAsUpdated2(myDoctorId, dateYM)
}, Math.floor(Math.random()*5001));
}
myDB.markMonthsValuesAsUpdated2 = function(myDoctorId, dateYM) {
console.log(dateYM);
[...]
인쇄 :
2012-01
2012-02
2012-03
2012-04
2012-05
2012-06
2012-072012-07
2012-07
2012-07
2012-07
2012-07
2012-07
2012-07