자바스크립트 비동기처리?
특정 코드의 연산이 끝날 때까지 코드의 실행을 멈추지 않고 다음 코드를 먼저 실행하는 자바스크립트의 특성
제이쿼리로 웹 서비스를 개발할 때 ajax 통신을 빼놓을 수 없음.
function getData() {
let tableData;
$.get('https://velog.io/rkhong, function(response){
tableData = response;
});
return tableData;
}
console.log(getData());
//#1
console.log('hey');
//#2
setTimeout(function() {
console.log('hey hey');
}, 3000);
//#3
console.log('hey hey hey');
비동기 처리 로직을 위해서 콜백 함수를 연속해서 사용할 때 발생하는 문제
a(function (response)) {
b(resopnse, function(id) {
c(id, function(result) {
d(result, function(text) {
console.log(text);
});
});
});
});
=> 문제점 : 가독성이 떨어지고 로직 변경이 어렵다
대표적 방법에는 Promise / Async
function ParseValueDone(id) {
auth(id, authDone);
}
function authDone(result) {
display(result, displayDone);
}
function displayDone(text) {
console.log(text);
}
a(function(response) {
parseValue(response, parseValueDone);
}
Reference