컴퓨터 공학/JavaScript
Node.js 함수 내 함수를 통한 코드 정리 예시
혼새미로
2019. 11. 14. 12:50
function test(){
let a = 1;
let b = 2;
const func1 = () => {
if(a == 1){
throw new Error("a = 1");
}
console.log('func1 success');
}
const func2 = () => {
if(b == 2){
throw new Error("b = 2");
}
console.log(`func2 success`);
}
try{
func1();
func2();
}
catch(ex){
console.error(`test failed - ${ex.message}`);
return;
}
}
test();
하나의 작업을 수행하는 함수 내에서도 다양한 추상화 수준의 코드들이 존재할 수 있기 때문에 이들을 다시 내부 함수로 분리하여 코드 가독성을 높이고, 내부 함수들을 try-catch 문에서 한번에 실행함으로써 오류 처리와 가독성을 높일 수 있습니다.
아래는 비동기 함수에 대한 처리 방법입니다.
async function test(){
let a = 2;
let b = 2;
const func1 = (value) => new Promise((resolve, reject) =>{
setTimeout(()=>{
console.log(value);
if(a == 1){
reject(new Error('func1 error'));
}
resolve('func1 success');
}, 1000);
});
const func2 = (value) => new Promise((resolve, reject) =>{
setTimeout(()=>{
console.log(value);
if(b == 2){
reject(new Error('func2 error'));
}
resolve('func2 success');
}, 1500);
});
try{
let result = await func1('func1 call');
console.log(result);
result = await func2('func2 call');
console.log(result);
}
catch(ex){
console.error(`test failed - ${ex.message}`);
return;
}
}
test();