>source

Firebase Cloud 함수가 주어 졌을 때 이벤트를 실패하는 적절한 방법은 무엇입니까 (재시도 의도로)콜드 스타트를 일으키지 않고?

이 문서 처리되지 않은 오류로 인해 콜드 스타트가 발생 함을 나타냅니다. 사용할 때 async 이 기능이 거부 된 제품에 적용된다고 가정합니다. Promise 게다가.

throw new Error('I failed you'); // Will cause a cold start if not caught

함수가 100 % 신뢰할 수없는 타사 서비스에 자주 의존한다는 점을 감안할 때 일시적인 다운 스트림 오류로 인해 콜드 스타트로 인해 추가 페널티가 발생하는 것을 원하지 않습니다.

이것이 권장 전략입니까? 저는 Firestore를 사용하고 있으므로 예약 된 클라우드 기능에 의해 스크랩되는 임시 컬렉션에 재시도 가능한 이벤트를 저장하는 것을 고려했지만 불필요하게 복잡해 보입니다.

  • 답변 # 1

    거부 된 약속 자체는 "처리되지 않은 오류"가 아닙니다. 당신이 보여주는 것은 던져진 예외이며 약속과 직접 관련이 없습니다. 함수 콜백을 이스케이프하는 throw 된 예외는 처리되지 않은 것으로 간주됩니다. 의도적으로 함수 호출을 실패해야하는 경우거절 된 약속을 돌려 주다하지 마십시오던지다인용 된 예제 코드가 지금 수행하고 있습니다.

    Promise.reject ()를 사용하여 필요한 경우 간단한 거부 된 약속을 만들 수 있습니다.

    return Promise.reject(new Error('fail'))
    
    

관련 자료

  • 이전 html - 위치를 스크롤 할 수 없도록 고정
  • 다음 Word 문서에서 단어를 바꾸면 C #으로 여러 번 대체 됨