コード:
リーリーFirefoxではrejectのみが出力され、Chromeでは普通に入力するとUncaught(in promise)が表示されます
すみません、なぜキャッチされない例外が発生するのですか? p のキャッチは明確に定義されているのに、なぜ Firefox は拒否を出力するだけで、p を出力する操作は効果がありません (実際には、キャッチされない例外が原因であるはずです)。
補足:
キャッチされない例外の理由は、2 番目の関数が then で定義されていないにも関わらず実行され、その原因とステータスが返された新しい Promise オブジェクトに渡されるためです。 catch コールバックがあるため、例外が報告されます
しかし、Firefox の出力 p が効果がない理由はまだ不明です
欧阳克2017-06-14 10:55:56
Promise は標準に相当します。標準に準拠するプロトタイプはすべて Promise と呼ぶことができます。ブラウザが異なれば、標準以外の機能も異なる可能性があります。明らかに、Firefox は .catch と .then を実行時に個別に宣言できると考えています。レスポンス、つまり、上記のようにエラーは報告されません。Google は、.catch は .then の例外と一緒に処理されるべきであると考えているため、.then の後の Promise に適用する必要があります。 .then().catch を一緒に使用すると、Google はエラーを報告しません。根本的な理由は、1 つはイベントに基づいており、もう 1 つはポーリングに基づいている可能性があります。