私はそこに答えがあることを知っていますが、私は実際の質問に特定の答えを見つけることができませんでした。非同期 - 約束されていないエラーを取得するにはどうすればよいですか? (その特定のエラーに反応する)
現在、私は次のパターンをたくさんuse:
class A
{
getLocation()
{
return Promise.reject(2222222)
}
async a()
{
try
{
var loc = await this.getLocation();
alert(loc)
}
catch (e)
{
alert("catch 2")
}
}
}
new A().a();
- 結果:私は
getLocation
にエラーをスローした場合、 "キャッチ2"
イベント:
getLocation()
{
throw Error("ffffff")
}
- 同じ結果が得られます。これは問題ありません。
どこに問題がありますか?
まあ、あなたが知っているように、asynchronously-non-promised
スローされるエラーが異なる獣です:
全くそうthis code won't be catched:
getLocation() //bad code from a third party code , third party code
{
return new Promise((v, x) => setTimeout(() =>
{
throw Error("ffffff")
}, 100))
}
質問:そのI事実について
エラーをキャッチしたい - これをキャプチャするためのより良いパターンはありますか?
私にできることを確認します。
window.onerror = function() { alert(4)}
しかし、それは.catch(...)
またはcatch(){}
の流れとして順ではないだろう、と私はエラーの原因となったその具体的な行動に関する行為を行うことはできません。
全開示:
実際のシナリオはありません。学習目的。