여기에 async
函数可能会抛出错误,我正在使用 unhandledrejection
事件处理它们,因为那些未捕获的 throw
不会触发 error
事件,因为它们发生在 Promise
内。因此,我的错误处理程序正在获取 PromiseRejectionEvent
而不是 ErrorEvent
코드가 있습니다.
지금까지는 훌륭했고 오류 처리도 잘 작동했습니다.
하지만 여기서 작은 문제가 있는데 그것은 PromiseRejectionEvent
事件缺少位置信息,与 ErrorEvent
이벤트가 다르기 때문에 오류를 발생시키는 코드에 위치를 입력하는 것이 매우 유용할 것이라는 점입니다.
코드가 async
函数,并且处理程序获取 ErrorEvent
事件时,需要使用 event.filename
、event.lineno
和 event.colno
를 사용하지 않지만 이러한 cphpcn 활동이 PromiseRejectionEventphpcnend에서 누락된 경우.
SO 내 질문은: PromiseRejectionEvent
并重新分派它,以便最终我有一个带有位置信息的 ErrorEvent
PromiseRejectionEvent를 어떤 방식으로든 래핑하고 다시 디스패치하여 결국 위치 정보가 포함된
저는 다음과 같은 것을 시도했습니다:
으아악
ErrorEvent
以及相关的错误信息但是所有位置信息都是无用的(0
위 코드는 올바른
를 생성하지만
모든 위치 정보는 쓸모가 없습니다(0는 행과 열을 나타내고 ''는 파일 이름을 나타냄).
🎜그런데 unhandledrejection 이벤트 핸들러에서 스택 추적을 가져왔는지 확인했지만 현재 사용자 정의 클래스를 사용하여 내 코드에서 Promise를 래핑할 수 없습니다. 🎜 🎜미리 감사드립니다 :)🎜
그렇습니다! 하지만 직접 구축하고 예약하는 것은 아닙니다
ErrorEvent
来实现。相反,您可以使用reportError
: