Cod*_*yte 6 javascript promise unhandled-promise-rejection
我尝试从 抛出一个错误JSON.parse(),我希望“unhandledrejection”事件会捕获它:
window.addEventListener('unhandledrejection', event => {
console.log('unhandledrejection:', event.reason?.message || event.reason);
});
Promise.resolve("{")
.then((data) => {
JSON.parse(data)
});Run Code Online (Sandbox Code Playgroud)
但是(Chrome 的)控制台中出现 Uncaught (承诺):
Uncaught (in promise) SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
...
Run Code Online (Sandbox Code Playgroud)
我尝试了更多抛出错误的方法,它们都可以被捕获:
Uncaught (in promise) SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
...
Run Code Online (Sandbox Code Playgroud)
我试图重新抛出错误,但它仍然无法被“unhandledrejection”捕获:
window.addEventListener('unhandledrejection', event => {
console.log('unhandledrejection:', event.reason?.message || event.reason);
});
Promise.resolve("{")
.then((data) => {
eval(data)
}); // unhandledrejection: SyntaxError: Unexpected end of input
Promise.resolve()
.then(() => {
throw 123
}); // unhandledrejection: 123Run Code Online (Sandbox Code Playgroud)
我想知道为什么这个错误没有被捕获。