오류 감시 - Promise 오류 감시
Promise
오 류 를 이야기 하 겠 습 니 다.일단 앤 리 가 잘못 보고 하고 감시 하 는 프로젝트 FE - Monitor 환영 issue 와 star.
Promise
전단 에서 의 사용 은 이미 매우 보편적 이지 만 많은 개발 자 들 이 체인 호출 에 익숙 해 졌 을 지 모 르 지만 포획 Promise
의 오 류 를 잊 어 버 렸 다.예 를 들 면:
function forgetCatchError () {
async()
.then(() => {
// code..
})
.then(() => console.log('forget catch error!'));
}
위의 예제 코드
async()
와 후속 두 개 then
의 코드 가 잘못 되 거나 reject 되면 오 류 는 처리 되 지 않 았 습 니 다.오류 처 리 를 위 한 리 셋 함 수 를 사용
catch
방법 으로 지정 하지 않 았 을 때 Promise 대상 이 던 진 오 류 는 외부 코드 로 전달 되 지 않 습 니 다. 즉, 아무런 반응 이 없습니다.promise 가 reject 되 고 오류 정보 가 처리 되 지 않 았 을 때 unhandled rejection 을 던 집 니 다. 이 오 류 는 window.onerror
과 addEventListener("error")
에 의 해 감지 되 지 않 습 니 다.unhandled rejection 사용 하기
unhandledrejection
사건 을 감청 하면 catch
되 지 않 은 Promise 오 류 를 포착 할 수 있다.window.addEventListener("unhandledrejection", err => {
console.log(err.reason)
err.preventDefault();
}, false);
//
window.onunhandledrejection = function(err) {
console.log(err.reason);
return true;
}
addEventListener
에서 이벤트 preventDefault()
를 호출 하면 Promise 의 오 류 를 콘 솔 에 던 지지 않 고 onunhandledrejection
에서 같은 효 과 를 얻 을 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
오픈 소스 Github 기여 방법 👯♀️소개 , 첫 풀/병합 요청 작성을 연습할 수 있는 오픈 소스 리포지토리입니다. index.html 파일을 열면 이와 동일한 지침을 찾을 수 있습니다. 시작하자! 어떻게 결론 , 당신과 같은 다른 개발자들과 협업할 수...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.