検索

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

c# - Promiseオブジェクトがそれ自体を拒否した場合

コード:

リーリー

Firefoxではrejectのみが出力され、Chromeでは普通に入力するとUncaught(in promise)が表示されます

すみません、なぜキャッチされない例外が発生するのですか? p のキャッチは明確に定義されているのに、なぜ Firefox は拒否を出力するだけで、p を出力する操作は効果がありません (実際には、キャッチされない例外が原因であるはずです)。


補足:
キャッチされない例外の理由は、2 番目の関数が then で定義されていないにも関わらず実行され、その原因とステータスが返された新しい Promise オブジェクトに渡されるためです。 catch コールバックがあるため、例外が報告されます
しかし、Firefox の出力 p が効果がない理由はまだ不明です

女神的闺蜜爱上我女神的闺蜜爱上我2727日前743

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

  • 伊谢尔伦

    伊谢尔伦2017-06-14 10:55:56

    リーリー

    返事
    0
  • 欧阳克

    欧阳克2017-06-14 10:55:56

    Promise は標準に相当します。標準に準拠するプロトタイプはすべて Promise と呼ぶことができます。ブラウザが異なれば、標準以外の機能も異なる可能性があります。明らかに、Firefox は .catch と .then を実行時に個別に宣言できると考えています。レスポンス、つまり、上記のようにエラーは報告されません。Google は、.catch は .then の例外と一緒に処理されるべきであると考えているため、.then の後の Promise に適用する必要があります。 .then().catch を一緒に使用すると、Google はエラーを報告しません。根本的な理由は、1 つはイベントに基づいており、もう 1 つはポーリングに基づいている可能性があります。

    返事
    0
  • キャンセル返事