const sleep = (ms) => {
const start = new Date().getTime();//1. 함수실행시 현재 시간값을 받고
while (new Date().getTime() < start + ms);
}
//2. 루프를 돌면서 새롭게 받아오는 시간값이 => start + delay
//시간보다 클때까지 계속 루프를 돌면서 아래 코드를 지연시킴
function isSyncDealy() {
sleep(3000)
console.log('1번');
sleep(4000)
console.log('2번');
}
isSyncDealy()
console.log('3번'); //❗️가장 마지막 실행.
//결과 : 1번,2번,3번
const delay = (ms) => {
return new Promise(resolve => setTimeout(resolve,ms) )
}
async function isAsyncDealy() {
await delay(3000) //3초지연
console.log('1번'); //3초뒤 실행
await delay(4000) // 3+4(7)초지연
console.log('2번'); //7초뒤 실행
}
isAsyncDealy()
console.log('3번'); //❗️가장 먼저 실행.
//결과: 3번,1번,2번