(새 문서: callback hell == 개요 == 콜백 지옥은 JavaScript를 이용한 비동기 프로그래밍시 발생하는 문제로서, 함수의 매개 변수로 넘겨지는 콜백 함...) 태그: 분류가 필요합니다! |
편집 요약 없음 |
||
44번째 줄: | 44번째 줄: | ||
}); | }); | ||
</source> | </source> | ||
== 해결 방안 == | |||
=== 동기 함수를 사용한다 === | |||
=== 콜백 함수를 분리한다 === | |||
=== Async 모듈 사용 === | |||
=== Promise 패턴 도입 === | |||
=== Async-Await === | |||
[[분류:프로그래밍]] |
2016년 9월 1일 (목) 21:38 판
callback hell
개요
콜백 지옥은 JavaScript를 이용한 비동기 프로그래밍시 발생하는 문제로서, 함수의 매개 변수로 넘겨지는 콜백 함수가 반복되어 코드의 들여쓰기 수준이 감당하기 힘들 정도로 깊어지는 현상을 말한다.
예
step1(function (value1) {
step2(function (value2) {
step3(function (value3) {
step4(function (value4) {
step5(function (value5) {
step6(function (value6) {
// Do something with value6
});
});
});
});
});
});
step1에서 어떤 처리 (주로 입출력) 이후 그 결과를 받아와, 인자로 전달된 익명 함수의 매개변수로 넘겨준다. 이후 step2에서 또 어떤 처리를 하고, 다음 익명 함수가 실행된다. 이를 반복하다보면 코드가 위에서 아래가 아니라 기묘한 피라미드 모양으로 기술되게 된다. 여기서 에러 처리가 포함되면 더욱 가관이다.
step1(function (err, value1) {
if (err) {
console.log(err);
return;
}
step2(function (err, value2) {
if (err) {
console.log(err);
return;
}
step3(function (err, value3) {
if (err) {
console.log(err);
return;
}
step4(function (err, value4) {
// 정신 건강을 위해 생략
});
});
});
});