let errMessage = null
errMessage = errMessage || checkCondition1(value1);
errMessage = errMessage || await checkCondition2(value2);
errMessage = errMessage || checkCondition3(value3);
........
if (errMessage !== null) {
res.status(errMessage.status);
return res.json({ error: errMessage.message });
}
errMessage = errMessage || await checkCondition4(value4);
errMessage = errMessage || checkCondition5(value5);
errMessage = errMessage || await checkCondition6(value6);
if (errMessage !== null) {
res.status(errMessage.status);
return res.json({ error: errMessage.message });
}
checkCondition 함수들을 에러가 있을때 에러 메시지 객체를 리턴하도록 설정하면,
자바스크립트의 단락 평가를 이용하여 불필요한 추가 체크 함수 실행들을 생략 할 수 있습니다.
errMessage의 값이 전송할 에러 메시지 객체가 되면 자동으로 단락 평가되어
뒷부분의 checkCondition 함수들의 실행이 생략되고,
if (errMessage !== null)까지 불필요한 연산 없이 진행할 수 있습니다.
또한, 매번 여러 체크 조건들을 모아 새로운 checkConditions1 을 만들 필요 없이,
개별 조건 코드들을 그대로 사용하고, 실행을 생략할 수 있습니다.
if,else의 난립이나 for문을 사용하는 추가 함수, 여러 체크 조건들을 모아 새로운 함수를 만드는 등의
비싼 과정들을 수행할 필요가 없기 때문에, 가독성을 높이고 이름 짓는 비용을 덜어낼 수 있습니다.