서버 쪽에서 개발 중인try-catch를 벗어나면 더 좋은 방법이 있습니다!

부언: 이 글은 노드에 잘 어울린다.js 또는express입니다.js 개발
자바스크립트의 비동기 함수를 만날 때마다try-catch 문장의 문을 두드린다. 이것은 전통적인 방식이다.서버 사이드 개발에서, 이것은 시종 비동기 대기 함수를 처리하는 주간이다.
리셋 함수를 피하고 리셋 지옥에서 여러 번 벗어나야 할 때 큰 도움이 된다.
그러나 만약 우리가 이 점을 강화하여try-catch 문장을 더욱 짧고 뚜렷하게 할 수 있다면 어떻게 해야 하는가.다음은 우리가 일을 처리하는 전형적인 방식이다.
async function main(req, res, next) {
  try {
    var result = await doSomething();
    console.log(result);
  } catch (error) {
    console.error(error);
  }
}
Javascript 개발자로서, 우리는 위의 코드result를 잘 알고 있으며, 만일 모든 것이 순조롭다면, 컨트롤러에 인쇄될 것이다. 그렇지 않으면 error 인쇄될 것이다🍰

더 깨끗한 대체품


예를 들어 만약에 우리가 Express 프레임워크를 사용하고try-catch를 사용하여 요청을 처리한다면, 여기에는 더 깨끗하고 간단한 것들이 있으며, 끝이 없는 지루한 문장으로 바꿀 수 있다.
const catchAsync = (fn) => (req, res, next) =>{
    Promise.resolve(fn(req, res, next)).catch((err) => next(err));
});

catchAsync 함수는 매개 변수 (req,res,next)만 받아들이는 중간부품으로 볼 수 있다.만약 어떤 오류가 있으면 오류를 되돌려줍니다.
이것은try-catch 문장을 피하기 위해 강화된 오류 포획 함수를 어떻게 호출하는 방법입니다.
const sampleFunction = catchAsync(async (req, res) => {
           const awaitedResponse = await getResponse();
           res.send(awaitedResponse);
});

catchAsync는 우리가 전통적인 시도인 포획 논리를 실현해야 하는 모든 곳에서 호출할 수 있다.우리들 은 계속해서 우리들 의 좋은, 지루한 문장 을 강화하고, 자바스크립트 를 초보 개발자 에게 더욱 간단하게 할 것 이다

좋은 웹페이지 즐겨찾기