본문 바로가기

코드스테이츠

2021년 5월 16일 코드스테이츠 DAY-42 동기, 비동기 예습

반응형

드림코딩 엘리님의 설명을 받아 적으며 학습한 내용임을 안내드립니다. 

 

 

1. 동기와 비동기의 차이점

 

자바스크립트는 동기적이다. 

=> 호이스팅(var변수와 함수선언이 자동적으로 제일 위로 올라가는 현상)이 된 이후부터 코드가 작성순서에 맞추어 차례대로 실행된다는 말.

 

비동기라는 말 : 언제 코드가 실행될 지 예측할 수 없다는 말. (ex: setTimeout을 이용한 경우 비동기적인 실행방법)

 

setTimeout(function(){
	console.log('Hello World');
}, 1000)

콜백함수 : ('Hello World')를 console.log하는 setTimeout안의 함수는 바로 실행되는 것이 아니라, setTimeout이라는 함수의 parameter(인자)로서 지정한 시간 이후에 실행된다. 함수를 당장 실행하지 않고 1초가 지난 다음에 내 함수를 실행해줘, 내 함수를 나중에 다시(back) 불러줘(call)라는 것 처럼 parameter에 전달하는 함수를 callback함수라고 함.

 

2. promise 

 

promise는 비동기적인 실행을 위한 자바스크립트 object이다.

 

promise의 두가지 포인트 : 상태(state)(정보를 받아오는 중인지, 성공했는지 실패했는지), Producer(정보 제공자) vs Consumer(정보 소비자)(정보 제공자와 정보 소비자의 서로 다른 견해를 이해)

 

State : promise가 만들어져서 지정한 operation을 수행 중일때는 pending상태이고 operation을 성공적으로 다 끝내면 fulfilled state가 되고 성공적으로 operation을 끝내지 못했을 때는 rejected state가 됨.

 

promise를 만드는 순간 전달한 executer라는 callback 함수가 실행된다. 

반응형