일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 개발자필독서
- JS비동기처리
- 2월기념일을위해서달리자
- 프로그래머스
- 리액트의탄생
- 노마드북클럽
- JavaScript
- 이펙티브타입스크립트
- 캐럿마켓클론
- 노개북
- 11399번문제
- 실용주의프로그래밍
- 취업준비중
- 노마드코더
- 실용주의프로그래머
- 코딩
- 이벤트위임예제
- 프론트엔드 개발을 위한 자바스크립트 (feat. VanillaJS)
- 개발자필독서?
- 백준문제풀이
- 이벤트위임
- 시작
- 1931번문제
- 클린코드
- 북클럽
- 취업준비중..
- CSS
- 그리디알고리즘
- 자바스크립트스터디
- 개발자
Archives
- Today
- Total
파카
JS, 비동기 처리와 콜백함수 본문
비동기 처리에 대해 내용을 정리하려고 한다.
비동기 처리란
자바스크립트의 비동기 처리란 특정 코드의 연산이 끝날 때까지 코드의 실행을 멈추지 않고
다음 코드를 먼저 실행하는 자바스크립트의 특성을 의미합니다.
코드를 통해 비동기 처리를 이해해보자
먼저 비동기와 관련된 코드들을 보자
( 캡틴판교님 블로그에서 가져온 예제 )
// ajax 통신
function getData() {
var tableData;
// 값을 가져오는 요청을 했지만 기다려주지 않는다.
$.get('https://domain.com/products/1', function(response) {
tableData = response;
});
return tableData;
}
console.log(getData()); // undefined
// 위와 같이 서버로부터 값을 가져오거나
// DB에서 데이터를 비교해야 하는 경우 등의 사례에서 문제가 발생할 가능성이 있다.
setTimeout 사례
// #1
console.log('Hello');
// #2
setTimeout(function() {
console.log('Bye');
}, 3000);
// #3
console.log('Hello Again');
// acutual output
// Hello
// Hello Again
// ..after 3 sec
// Bye
위의 코드는 3초 간 기다려줄 것처럼 보이지만 실제로는 그렇지 않다..
그래서 이를 해결하기 위해 콜백함수를 사용한다
JS 코드를 통해보자
function timeout(callbackParameter) {
setTimeout(() => {
console.log('SetTimeout');
callbackParameter();
}, 3000)
};
timeout(() => {
console.log('Done !');
})
setTimeout과 callback 함수를 이용하여
SetTimeOut, Done이 출력되게 하였다.
그런데 이런 callback을 무분별하게 사용하다 보면
관리도 힘들고 코드 가독성을 해치는 상태가 되는데 이를 콜백 지옥이라고 한다.
해당 내용은 아래 페이지의 콜백지옥을 보자
콜백
ko.javascript.info
이러한 콜백지옥을 promise 문법을 통해 해결 할 수 있다.
promise와 async, await는 다른 글로 정리해보려고 한다.
출처
'프로그래밍 > Javascript' 카테고리의 다른 글
JS, aync, await (0) | 2021.12.11 |
---|---|
JS, promise (0) | 2021.12.10 |
일급함수, 일급객체란 ? (0) | 2021.12.08 |
클래스 그리고 prototype (0) | 2021.11.10 |
객체 (2) (0) | 2021.11.10 |
Comments