[Node] Async/Await로 동기 통신하기
자바스크립트로 코딩을 하다 보면 Ajax를 이용해서 코딩을 자주 하게 된다.
그러면 이제 예전에도 Promise 포스팅 했다시피 로직을 여러 번 거치는 프로세스 같은 경우
콜백 지옥과 같은 코드가 나오게 된다.
$.ajax{
url : "url1"
data : data
success : function(result){
$.ajax{
url : "url2"
data : data
success : function(result){
$.ajax{
url : "url3"
data : data
success : function(result){
}
}
}
}
}
}
아무래도 이와 같은 코드가 있으면 가독성도 떨어질 뿐 아니라 소스가 지저분해져서
추후 유지 보수에서 어려움을 겪게 된다.
그래서 나는 그동안 Promise 패턴을 통해서 이를 극복해나아갔다.
근데 아무래도 조금 나아진 것뿐이지 가독성이 좋다고는 볼 수 없을 거 같다.
그래서 찾아본게 Async/Await 패턴이다.
간단하게 코드를 통해서 해당 패턴의 방법을 알아보고 내가 생각하는 점을 말해보려고 한다.
const asyncFunction1 = () => {
return new Promise((resolve) => {
setTimeout(() => {
resolve(1);
}, 3000);
});
};
const asyncFunction2 = () => {
return new Promise((resolve) => {
setTimeout(() => {
resolve(2);
}, 1000);
});
};
async function excuteJob() {
const result1 = await asyncFunction1();
const result2 = await asyncFunction2();
console.log(result1 + result2); // 3
}
excuteJob();
위와 같은 패턴으로 구현하면 동기 통신으로 조금 더? 보기 좋게 구현할 수 있다.
다른 글 읽어보기 ⬇️
Apache
[Linux] Apache 기본적인 명령어
junitassert