자바스크립크는 싱글스레드로 동작한다. (동기 혹은 블로킹방식)
동기적 작업을 극복하기위해 비동기(논블로킹방식)방식을 사용한다.
function taskA() {
console.log("A 작업 끝");
}
taskA();
console.log("끝"); //taskA() 가 끝나야 실행.
/*
A 작업 끝
끝
*/
function taskA() {
setTimeout(**()** => {
console.log("A 작업 끝");
}, 2000); // 콜백함수를 이용하여 2초뒤
}
taskA();
console.log("끝");
/*
끝
A 작업 끝
*/
변수 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
*/