Google Chromeで簡単なunhandledrejectionハンドラーを使用しようとしています。Chromeで処理されていない未処理の返信
私はJSFiddleに次のコードを貼り付け、Chromeでそれを実行した場合、予想通り、私は、エラーボックスを取得:
window.addEventListener('unhandledrejection', function(e) {
console.log(e);
alert(e.reason);
});
new Promise(function(resolve, reject) {
setTimeout(function() {
return reject('oh noes');
}, 2000);
});
私が埋め込まれたスクリプトでHTMLファイルを作成し、Chromeでそれをロードする場合file:///
URLとして、期待どおりのメッセージボックスが表示されます。
<!doctype html>
<html>
<body>
<script type="text/javascript">
window.addEventListener('unhandledrejection', function(e) {
console.log(e);
alert(e.reason);
});
new Promise(function(resolve, reject) {
setTimeout(function() {
return reject('oh noes');
}, 2000);
});
</script>
</body>
</html>
私は別のHTMLとJSファイルを作成し、file:///
URLとしてChromeでそれをロードした場合、私はChromeの標準「キャッチされない(約束)で」コンソールエラーが、メッセージ・ボックスを取得。
のindex.html:
<!doctype html>
<html>
<body>
<script type="text/javascript" src="app.js"></script>
</body>
</html>
app.js:
window.addEventListener('unhandledrejection', function(e) {
console.log(e);
alert(e.reason);
});
new Promise(function(resolve, reject) {
setTimeout(function() {
return reject('oh noes');
}, 2000);
});
何が起こっていますか?