비동기(asynchronous)란? 동기(synchronous)란?(자기정리)

KHW·2021년 1월 7일
0

Javascript 지식쌓기

목록 보기
8/95

비동기와 동기에 대해서

동기적 : 어떤 작업을 요청했을 때 그 작업이 종료될 때까지 기다린 후 다음(다른) 작업을 수행하는 방식

비동기적 : 어떤 작업을 요청했을 때 그 작업이 종료될 때까지 기다리지 않고 다른 작업을 하고 있다가,요청했던 작업이 종료되면 그에 대한 추가 작업을 수행하는 방식

setTimeout은 왜 비동기적일까?

기본적으로 순차적(동기적)으로 코드가 진행된다.
이때 setTimeout 같은 함수를 사용할 경우 결과가 다른 코드가 아래에 있음에도 결과는 먼저 나온다. 즉, 순차적이지 않는다.(비동기적)

ex)

setTimeout(()=>console.log('나는 늦게출력'),1000);	//1초 후 출력
console.log('내가먼저 출력');				//바로출력

비동기적인데 동기인 형태는 무엇일까?

비동기적인 형태인 내용들이 그 안에서 순서가 존재하여 동기적으로 진행하는 형태


setTimeout(function(){
  console.log('나는 늦게출력')
  return setTimeout(function(){
    console.log('나는 그다음 늦게 출력')
    return setTimeout(function(){
      console.log('나는 그다다음 늦게 출력');
    },1000)
  },1000)
},1000);

console.log('내가먼저 출력');

맨아래 console.log가 먼저 출력 후 1초마다 위에서부터의 console.log가 출력되는 것을 볼 수 있다.

이는 비동기인 setTimeout 함수에서 각각의 순차적으로 진행 되는 것을 알 수 있다. (비동기안에서의 동기적 실행)

profile
나의 하루를 가능한 기억하고 즐기고 후회하지말자

0개의 댓글