[JS] Synchronous/Asynchronous

seoa·2022년 10월 20일
0

JavaScript

목록 보기
11/11
post-thumbnail

동기와 비동기에 대해 알아보자 ~!

동기 (Synchronous)
: 특정 코드를 수행 완료한 후 다음 코드를 실행

예시] 중국집을 예로 들면, 짜장면을 고객1한테 배달한 후 고객1이 시킨 음식을 다 먹은 후 고객1이 그릇을 반납할 때까지 기다린 후, 고객2에게 배달

비효율적이다.....

비동기(synchronous)
: 특정 코드를 수행하는 도중 다음 코드를 실행

예시] 고객1이 다 먹을 때까지 다른 일을 수행한다. 다 먹은 후 그릇을 찾으러 온다.

동기보다 효율적 ....!!



자바스크립트는 동기식 처리 언어이지만 비동기적으로 처리할 수 있다. (ex. ajax/setTimeout)

var, function 선언들이 맨위로(hoisting) 올라간 이후부터 작성한 순서에 맞춰 하나하나씩 동기적으로 실행됨 (by orger -> in order)

setTimeout(()=>{ console.log("1초 뒤 실행"}, 1000)
$.ajax()

setTimeout 함수와 같이 오래 걸리거나 실행까지 오래 걸리는 동작들을 Web API로 보냄
해결(1초가 지나길)이 되길 기다린 다음에 다시 가져옴

자바스크립트는 동기식 처리라, 원래는 오래 걸리는 동작들을 만나면 멈춤.
Web API와 연관된 특수한 함수들을 사용할 경우 오래 걸리는 동작일 시 다른 작업부터 실행이 가능한 것 !!
Web API 덕분에 비동기식 처리가 가능하다! 자바스크립트가 가능한 것이 아님!

profile
👩🏻‍💻

0개의 댓글