検索

ホームページ  >  に質問  >  本文

PromiseRejectionEventの位置情報を取得する

#async 関数がエラーをスローする可能性のあるコードがあり、それらのキャッチされない throw は ## エラーをスローしないため、unhandledrejection イベントを使用してそれらを処理しています。 #error イベントは、Promise 内で発生するため発生します。したがって、私のエラーハンドラーは、ErrorEvent ではなく PromiseRejectionEvent を取得します。 これまでのところ、エラー処理は正常に動作しています。

しかし、

ここで小さな問題があります。つまり、PromiseRejectionEvent イベントには、位置情報を配置する ErrorEvent イベントとは異なり、位置情報がありません。エラーを発生させるコードです。中将は非常に役に立ちます。 コードで

async

関数が使用されておらず、ハンドラーが ErrorEvent イベント、event.filenameevent.lineno## を取得する場合# と event.colno が必要ですが、これらの cphpcn アクティビティは PromiseRejectionEventphpcnend にありません。 SO

私の質問は、

PromiseRejectionEvent をラップして再ディスパッチして、最終的に ErrorEvent が発生するようにする方法はありますか?位置情報 ? 私は次のようなことを試しました: リーリー

上記のコードは正しい

ErrorEvent

と関連するエラー メッセージ

を生成しますが、 すべての位置情報は役に立ちません (0 は行と列を表し、'' はファイルを表します)名前)。 ところで、unhandledrejection イベント ハンドラーでスタック トレースを取得することを確認しましたが、現在、カスタム クラスを使用してコードで Promise をラップすることはできません。 ###事前にどうもありがとうございました :)###

P粉447785031P粉447785031279日前482

全員に返信(1)返信します

  • P粉835428659

    P粉8354286592024-02-18 10:48:20

    ###はい!ただし、

    ErrorEvent を自分で構築してディスパッチするだけでは実現できません。代わりに、reportError: を使用できます。

    リーリー

    返事
    0
  • キャンセル返事