해결된 질문
작성
·
218
0
코드
function one() {
for (var i = 0; i < 3; i++) {
setTimeout(function () {
console.log(i);
}, i * i * 100);
}
}
function two() {
for (var i = 0; i < 3; i++) {
closure(i);
}
}
function closure(i) {
setTimeout(() => {
console.log(i);
}, i * i * 100);
};
one();
two();
생각한 실행 결과
3 3 3 0 1 2
실제 결과
3 0 3 1 3 2
이렇게 나오는데 혹시 생각한 실행 결과처럼 나오게 하려면 어떻게 할 수 있나요?
그렇다면 one과 two를 실행했을때 생각한 실행 결과가 나오게 하려면 시간초를 다르게 하는 수밖에 없는 건가요?