동기와 비동기 코드

자바스크립크는 싱글스레드로 동작한다. (동기 혹은 블로킹방식)

동기적 작업을 극복하기위해 비동기(논블로킹방식)방식을 사용한다.

1. 동기

function taskA() {
  console.log("A 작업 끝");
}

taskA();
console.log("끝"); //taskA() 가 끝나야 실행.

/*
A 작업 끝
끝
*/

2. 비동기

function taskA() {
  setTimeout(**()** => {
    console.log("A 작업 끝");
  }, 2000); // 콜백함수를 이용하여 2초뒤
} 

taskA();
console.log("끝"); 

/*
끝
A 작업 끝
*/

2-1. 비동기 콜백지정

변수 2개를 받아 더해준 결과를 밖에서 이용하고자 한다면 콜백함수를 이용한다.

function taskA(a, b, **cb**) { // 콜백함수 추가.
  setTimeout(() => {
    const response = a + b; // const response 는 지역변수로 밖에서 쓸수 없기 때문에..
    cb(response); // cb라는 콜백함수에 넣어주었다.
  }, 3000);
}

taskA(3, 4, **(response) => {console.log("A 테스크 끝:", response);}**); // 받을 콜백함수도 같이 파라미터에 넘겨줌.
console.log("끝");

/*
끝 
A 테스크 끝: 7
*/