[JS]동기지연, 비동기지연 예제와 차이점

K00·2022년 11월 23일
0
post-thumbnail

동기 지연

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번

0개의 댓글