IE11ってマジ糞ウンチofウンコのファッキン無能ゴミブラウザだからPromiseは使えないんだけど、BabelでバベればPromise使えます。
で、それとは別に、「発生したエラーをすべてキャッチしたいね」っていう話がありまして、Vueのmain.tsでcatchしようと思った。
だけどもVue.config.errorHandlerがPromiseのrejectionを拾ってくれないという事実が判明して無事死亡。死亡しながら色々ググったらどうやらwindowに「unhandledrejection」のEventListenerをAddすりゃいいという結論に至った。
参考:Window: unhandledrejection イベント
で、IE11で動かなかった。ビルゲイツ殺す。
◆結論
window.onunhandledregectionを使用する。
window.onunhandledrejection = (e) => {
if (e.reason instanceof ReferenceError) {
// e.reasonにエラーが入ってるよ。
// この例だとReferenceErrorに絞って処理しているよ。
} else {
}
};
参考:WindowEventHandlers.onunhandledrejection
これでもってIE11のPromiseがrejectionでもhandleできた。
◆思う事
これってNode.jsを使ってるから動いてるんだろうか?と思った。MDNに記載はあるんだけどIE11と狐のコンパチがNoになってんだよね。てかそもそもIEにPromise存在しねぇし。TypeScriptに型指定があったから標準っぽくはあるんだけど良く分からんね。10分くらい調べればわかることではあるんだけどIE11のクソに10分も使いたくないから特に調べる気はない。
コメントを残す