728x90

# 비동기 함수(setInterval)

console.log(1);

let num = 0
let id = setInterval(
    () => {
   console.log(num++); 
    }, 2000
)
console.log(2);

setTimeout(
    ()=>{
        clearInterval(id)
        console.log('exit');
    }, 13000
)

 

# 비동기 함수 (setTimeout) - for 변수 var 타입

for(var i=0; i<3; i++){
    setTimeout(
        ()=>{
            console.log(i);
        }, 1000
    )
}

# 동기화

> 방법 1 : let 사용

for(let i=0; i<3; i++){
    setTimeout(
        ()=>{
            console.log(i);
        }, 1000
    )
}

for에 변수 타입이 var가 아닌 let을 사용하면, 동기화 처리가 된다.

> 방법 2 : 즉시 실행 함수 사용

for(let i=0; i<3; i++){
    // 즉시 실행 함수
    (function(x){
        setTimeout(
            ()=>{ console.log(x); },
            1000
        )
    })(i)
}

즉시 실행 함수를 사용하면, 동기화 처리가 된다.

 

728x90

+ Recent posts