• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

비동기 에러처리 질문

22.02.11 21:37 작성 조회수 91

0

제로초님
비동기 관련하여 질문이 있습니다

현재 FCM 푸시알림을 보내줄때

try{

await admin.messaging().send(msg);

}catch(err){

console.log(err);

}

이런식으로 await을 만들어서 동기적으로 에러처리를 해주고있었는데,

아무래도 서버 cpu가 한번씩 100 위로 튀는 이유가 이것을 await으로 처리해줘서 밀려있던 작업들이 봇물터지는 쏟아져서 그런거라고 생각하여

await을 빼줬습니다.

생각해보니 이렇게되면 try catch는 동기에러만 잡아주니

뒤늦게 들어오는 에러는 잡아주지 못한다고 생각했는데,

에러를 잡아주지 못하나요??

그리고 맞다면 푸시알림에서 에러 발생시에 잡아주지 못하니까 서버 프로세스가 종료되는건가요..?

 

만약 비동기적으로 빠르게 에러 처리를 하고싶다면

then().catch()를 써야하는건지 궁금합니다.

답변 1

답변을 작성해보세요.

0

await은 동기적으로 보이는것이지 동기처리가 아닙니다. await은 다만 에러 처리를 try catch로 해야하는 것이고요. cpu가 100%가 되는 이유랑 크게 상관없을것 같아 보입니다. await을 뺀 경우에는 then catch로 에러처리를 하셔야합니다. 단순히 await try catch가 then catch로 바뀐 것이라 다른 로직이 없다면 별 차이가 없어야합니다.