<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</anchor-end> <cite>ECMAScript® 2018 Language Specification</cite> (<time>2017-06-14 04:16:40 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tc39.github.io/ecma262/#sec-host-promise-rejection-tracker">https://tc39.github.io/ecma262/#sec-host-promise-rejection-tracker</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <cite>ECMAScript® 2018 Language Specification</cite> (<time>2017-06-14 04:16:40 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tc39.github.io/ecma262/#sec-properties-of-promise-instances">https://tc39.github.io/ecma262/#sec-properties-of-promise-instances</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <cite xml:lang="en-GB-x-hixie">HTML Standard</cite> (<time>2015-12-03 22:48:19 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://html.spec.whatwg.org/#environment-settings-object">https://html.spec.whatwg.org/#environment-settings-object</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <cite xml:lang="en-GB-x-hixie">HTML Standard</cite> (<time>2015-12-03 22:48:19 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://html.spec.whatwg.org/#unhandled-promise-rejections">https://html.spec.whatwg.org/#unhandled-promise-rejections</anchor-external></li></ul></refs></section><section><h1>イベント</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">約束</anchor>を扱う場合、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">履行</anchor>時の処理を記述するのは普通のことで基本ですが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拒絶</anchor>時の処理は怠りがちです。 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">例外</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">投げ</anchor>られた処理を怠りがちなのと同じです。)</p><p>真に異常で通常なら起こり得ない問題のため<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拒絶</anchor>時の処理を敢えて省くこともあれば、
失敗することもあるので<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拒絶</anchor>時の処理を指定しなければならないのに漏れてしまった場合もあります。</p><p>どちらの場合でも、せめて<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開発者コンソール</anchor>では気づきたいですし、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">例外</anchor>に対する <code>error<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">onerror</title></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>のように<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>側で検知したいこともあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[50]</anchor-end> そのため、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">約束</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拒絶</anchor>されて処理されていないことを通知する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>が用意されています。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">約束</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拒絶</anchor>され、それが処理されないままの時は、
<dfn><code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">unhandledrejection</anchor></code></dfn> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大域オブジェクト</anchor>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">発火</anchor>されます。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</anchor-end> この<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">例外</anchor>における <code xmlns="http://www.w3.org/1999/xhtml">error<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">onerror</title></code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>に相当するものです。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[53]</anchor-end> この<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>は<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">取消可能</f>です。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">取消</anchor>された場合、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開発者コンソール</anchor>には何も表示されません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">取消</anchor>されていない場合、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拒絶</anchor>について<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開発者コンソール</anchor>に表示されます。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> <code>unhandledrejection</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">発火</anchor>された後から処理が追加された場合には、
<dfn><code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">rejectionhandled</anchor></code></dfn>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大域オブジェクト</anchor>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">発火</anchor>されます。
<code>unhandledrejection</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントハンドラー</anchor>で処理が追加された場合にはこの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">発火</anchor>されませんが、
それよりも後に処理が追加された場合に、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">発火</anchor>されます。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</anchor-end> <code xmlns="http://www.w3.org/1999/xhtml">unhandledrejection</code> を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">発火</anchor>するかどうかの判定は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">約束</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拒絶</anchor>されてからわりとすぐに
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">マイクロタスク</anchor>処理後に) 行われます。しかし<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">約束</anchor>をずっと保持しておいて、
しばらく経ってから処理が追加される可能性は残ります。
その場合に <code xmlns="http://www.w3.org/1999/xhtml">unhandledrejection</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>で把握できます。
ただし <code xmlns="http://www.w3.org/1999/xhtml">unhandledrejection</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">発火</anchor>されることは保証されません。</comment-p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> <dfn><code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PromiseRejectionEvent</anchor></code></dfn> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal></src> は、
<code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">rejectionhandled</anchor></code>/<code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">unhandledrejection</anchor></code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>と共に用いられます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書環境</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ワーカー環境</anchor>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">晒され</anchor>ています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PromiseRejectionEvent</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor>は、
他の <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Event</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor>同様の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">コンストラクター</anchor>を持ちます
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal></src>。
初期化のための<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">辞書</anchor>は <dfn><code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PromiseRejectionEventInit</anchor></code></dfn> です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PromiseRejectionEvent</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor>は、
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Event</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">継承</anchor>しています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal></src>。
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PromiseRejectionEventInit</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">辞書</anchor>は、
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EventInit</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">辞書</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">継承</anchor>しています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PromiseRejectionEvent</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor>の
<dfn><code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">promise</anchor></code></dfn> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDL属性</anchor>は、
当該通知の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">約束</anchor>を表すもので、任意の <code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Promise</anchor></code>
を値として持つ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">読み取り専用属性</anchor>です。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">取得器</anchor>は本<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントオブジェクト</anchor>について指定された値を返さなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PromiseRejectionEvent</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor>の
<dfn><code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">reason</anchor></code></dfn> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDL属性</anchor>は、
当該<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">約束</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拒絶</anchor>理由を表すもので、任意値を持つ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">読み取り専用属性</anchor>です。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">取得器</anchor>は本<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントオブジェクト</anchor>について指定された値を返さなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> つまり、 <code xmlns="http://www.w3.org/1999/xhtml" class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">catch</anchor></code> で指定された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">関数</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>として受け取るであろう値となります。</comment-p></section><section><h1>処理</h1><section><h1>約束</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">約束</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内部スロット</anchor>
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" class="ss">PromiseIsHandled</f></dfn> を持ちます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;24</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> この値は、 <code>Promise</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">コンストラクター</anchor>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">偽</anchor>に初期化されます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> 
<code>then</code> や <code>await</code> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">真</anchor>に設定されます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[64]</anchor-end> 
<code>ReadableStream</code> や <code>WritableStream</code> の処理でも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">真</anchor>に設定されることがあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> この値が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">偽</anchor>の時に、
<code>HostPromiseRejectionTracker</code> が実行されます。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> 
<dfn><code>HostPromiseRejectionTracker</code></dfn> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ホスト環境</anchor>定義の内部操作として
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>で定義されているものです <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;54</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end> この操作は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>として<var>約束</var>と<var>操作</var>を与えられます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;54</anchor-internal></src>。
<var>操作</var>の値は、 <code>reject<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">HostPromiseRejectionTracker</title></code> または 
<code>handle<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">HostPromiseRejectionTracker</title></code> のいずれかです <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;54</anchor-internal></src>。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[59]</anchor-end> 
<var>操作</var> <dfn><code>reject<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">HostPromiseRejectionTracker</title></code></dfn>
は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">約束</anchor><var>約束</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ハンドラー</anchor>の登録されていない状態で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拒絶</anchor>された時、
実行されます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;54</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[62]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> では、次のようにしなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal></src>。</p><figure class="steps"><ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">走っているスクリプト</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">設定群オブジェクト</f>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">これから通知する拒絶された約束リスト</f>に、<var>約束</var>を追加します。</li></ol></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end> 
この処理は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拒絶</anchor>時に <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" class="ss">PromiseIsHandled</f> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">偽</anchor>の場合に、実行されます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拒絶</anchor>は1回しか起こらないため、この処理も1回しか呼び出されません。
<var>操作</var>が <code>handle<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">HostPromiseRejectionTracker</title></code> で呼び出された後にこちらの処理が呼び出されることもありません。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[60]</anchor-end> 
<var>操作</var> <dfn><code>handle<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">HostPromiseRejectionTracker</title></code></dfn> は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">約束</anchor><var>約束</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拒絶</anchor>されているところ、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ハンドラー</anchor>が初めて追加された時、
実行されます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;54</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> では、 次のようにしなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal></src>。</p><figure class="steps"><ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <var>設定群オブジェクト</var>を、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">走っているスクリプト</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>設定群オブジェクト</anchor></f>に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> <var>設定群オブジェクト</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>これから通知する拒絶された約束リスト</anchor></f>に<var>約束</var>が含まれている場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <var>設定群オブジェクト</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>これから通知する拒絶された約束リスト</anchor></f>から<var>約束</var>を削除します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> それ以外で、<var>設定群オブジェクト</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>未決拒絶された約束弱集合</anchor></f>に<var>約束</var>が含まれている場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> <var>設定群オブジェクト</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>未決拒絶された約束弱集合</anchor></f>から<var>約束</var>を削除します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タスクをキューに追加</anchor>します。<figure class="list members"><dl><dt><var>処理</var></dt><dd><figure class="steps"><ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントを発火</anchor>します。<figure class="list members"><dl><dt><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">対象<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">イベント対象</title></f></dt><dd><var>設定群オブジェクト</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>大域オブジェクト</anchor></f></dd><dt><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">イベントインターフェイス</title></f></dt><dd><code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PromiseRejectionEvent</anchor></code></dd><dt><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">型<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">イベント型</title></f></dt><dd><code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">rejectionhandled</anchor></code></dd><dt><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>trusted</anchor></f></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">真</anchor></dd><dt><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>bubbles</anchor></f></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">偽</anchor></dd><dt><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>取消可能</anchor></f></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">偽</anchor></dd><dt><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml" class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">promise</anchor></code></f></dt><dd><var>約束</var></dd><dt><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml" class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">reason</anchor></code></f></dt><dd><var>約束</var> の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" class="ss"><anchor>PromiseResult</anchor></f> の値</dd></dl></figure></li></ol></figure></dd><dt><var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タスク源</anchor></var></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM操作タスク源</anchor></dd></dl></figure></li></ol></li></ol></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[63]</anchor-end> 
この処理は <code>then</code> から呼び出されます。
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" class="ss">PromiseIsHandled</f> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">偽</anchor>の時に呼び出されますが、
本処理の直後に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">真</anchor>に設定されるため、
本処理が呼び出されるのは高々1回です。
本処理が呼び出されるのは既に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拒絶</anchor>されている場合のみですから、
必ず<var>操作</var> <code>reject<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">HostPromiseRejectionTracker</title></code>
で1回呼び出された後になります。</p></section><section><h1>環境設定群オブジェクト</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境設定群オブジェクト</anchor>は、
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><rubyb>これから通知する拒絶された約束リスト<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">about-to-be-notified rejected promises list</rt></rubyb></f></dfn>を持ちます
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">約束</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拒絶</anchor>され、処理が追加されていない場合、このリストに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">約束</anchor>が追加されていきます。
処理が追加されると、このリストから<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">約束</anchor>は削除されます。
最終的に残った<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">約束</anchor>について、 <code>unhandledrejection</code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">発火</anchor>されます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境設定群オブジェクト</anchor>は、
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><rubyb>未決拒絶された約束弱集合<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">outstanding rejected promises weak set</rt></rubyb></f></dfn>を持ちます
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src>。この<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">弱集合</anchor>からその<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">構成要素</anchor>への<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強参照</anchor>であっては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src>。
実装はサイズを制限しても構いません (例えば溢れるなら古いものを削除して構いません) <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src>。
<code>unhandledrejection</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">発火</anchor>された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">約束</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントハンドラー</anchor>でも処理が追加されないままの場合、
このリストに追加されます。
処理が追加された時、このリストに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">約束</anchor>が含まれていれば、
<code>rejectionhandled</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">発火</anchor>されます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境設定群オブジェクト</anchor><var>設定群オブジェクト</var>の<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拒絶された約束について通知<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">notify about rejected promises</rt></rubyb></dfn>は、
次のようにしなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal></src>。<figure class="steps"><ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <var>リスト</var>を、<var>設定群オブジェクト</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>これから通知する拒絶された約束リスト</anchor></f>の複製に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <var>リスト</var>が空なら、ここで停止します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <var>設定群オブジェクト</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>これから通知する拒絶された約束リスト</anchor></f>を、空にします。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> 次のような<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タスク</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タスクキューに追加</anchor>します。<figure class="list members"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タスク</anchor></figcaption><dl><dt><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>タスク源</anchor></f></dt><dd>?</dd><dt><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">処理</f></dt><dd><figure class="steps"><ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <var>リスト</var>内の各<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">約束</anchor> <var>p</var> について、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <var>p</var> の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" class="ss"><anchor>PromiseIsHandled</anchor></f> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">真</anchor>なら、
次の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">約束</anchor>に進みます。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> 新しい<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor><var>イベント</var>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">発火</anchor>します。<figure class="list members"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor></figcaption><dl><dt><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>イベント型</anchor></f></dt><dd><code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">unhandledrejection</anchor></code></dd><dt><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>インターフェイス</anchor></f></dt><dd><code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PromiseRejectionEvent</anchor></code></dd><dt><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>trusted</anchor></f></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">真</anchor></dd><dt><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>bubbles</anchor></f></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">偽</anchor></dd><dt><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>取消可能</anchor></f></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">真</anchor></dd><dt><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml" class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">promise</anchor></code></f></dt><dd><var>p</var></dd><dt><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml" class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">reason</anchor></code></f></dt><dd><var>p</var> の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" class="ss"><anchor>PromiseResult</anchor></f> の値</dd><dt><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>対象</anchor></f></dt><dd><var>設定群オブジェクト</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>大域オブジェクト</anchor></f></dd></dl></figure></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> 
<var>結果</var>を、<var>イベント</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">取消</f>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">真</anchor>なら
「<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">取り扱われた<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">handled</rt></rubyb></dfn>」、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">偽</anchor>なら「<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">取り扱われなかった<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">not handled</rt></rubyb></dfn>」
に設定します。<comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">エラーの報告</anchor>も参照。</comment-p></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> 
<var>結果</var>が「取り扱われなかった」の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拒絶</anchor>について<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開発者コンソール</anchor>に報告して構いません。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <var>p</var> の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" class="ss"><anchor>PromiseIsHandled</anchor></f> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">偽</anchor>なら、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> <var>設定群オブジェクト</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>未決拒絶された約束弱集合</anchor></f>に <var>p</var>
を追加します。</li></ol></li></ol></li></ol></figure></dd></dl></figure></li></ol></figure></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</anchor-end> この処理は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">マイクロタスクチェックポイントを行う</anchor>処理から呼び出されます。</p></section></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> <cite>IRC logs: freenode / #whatwg / 20140912</cite>
( (<time>2014-09-13 11:03:22 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://krijnhoetmer.nl/irc-logs/whatwg/20140912#l-688">http://krijnhoetmer.nl/irc-logs/whatwg/20140912#l-688</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> <cite xml:lang="en"><strong></strong>[<strong></strong>whatwg<strong></strong>]<strong></strong> An API for unhandled promise rejections</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Domenic Denicola</anchor> 著, <time>2014-09-13 03:34:23 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.w3.org/Archives/Public/public-whatwg-archive/2014Sep/0024.html">http://lists.w3.org/Archives/Public/public-whatwg-archive/2014Sep/0024.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</anchor-end> <cite xml:lang="en">domenic/unhandled-rejections-browser-spec</cite>
(<time>2015-06-18 08:21:28 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/domenic/unhandled-rejections-browser-spec">https://github.com/domenic/unhandled-rejections-browser-spec</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</anchor-end> <cite xml:lang="en">1179244 – Dispatch events for promises with unhandled rejections</cite>
(<time>2015-07-02 10:30:56 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugzilla.mozilla.org/show_bug.cgi?id=1179244">https://bugzilla.mozilla.org/show_bug.cgi?id=1179244</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[61]</anchor-end> <cite xml:lang="en">Bug 150358 – Support for promise rejection events</cite>
(<time>2015-10-21 11:24:26 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugs.webkit.org/show_bug.cgi?id=150358">https://bugs.webkit.org/show_bug.cgi?id=150358</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite xml:lang="en">Add promise rejection tracking events · whatwg/html@61ccc05</cite> (<time>2015-12-03 22:55:13 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/61ccc05b7437ba947390928f9e526da49550fed0">https://github.com/whatwg/html/commit/61ccc05b7437ba947390928f9e526da49550fed0</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> <cite xml:lang="en">Rewrite script execution on top of ES · whatwg/html@4891d18</cite>
(<time>2015-12-22 23:56:19 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/4891d18aaf2df1d40aa61f467a5a10cfc19dd85d">https://github.com/whatwg/html/commit/4891d18aaf2df1d40aa61f467a5a10cfc19dd85d</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> <cite xml:lang="en">Restore definition of &quot;Reject&quot; lost in 079cbb861a99e9e857a3f2a169c0be… · heycam/webidl@326291e</cite>
(<time>2016-02-16 11:03:14 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/heycam/webidl/commit/326291e58cf0b6e3677edb8c62682e41acaf7faf">https://github.com/heycam/webidl/commit/326291e58cf0b6e3677edb8c62682e41acaf7faf</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> <cite xml:lang="en">Sync with recent changes to the JS spec's job queue · whatwg/html@5af258f</cite>
(<time>2016-03-24 21:47:31 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/5af258f33e3e2f55eb30e611cb7aee625a8bd16a">https://github.com/whatwg/html/commit/5af258f33e3e2f55eb30e611cb7aee625a8bd16a</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> <cite xml:lang="en">Clarify settings object, realm, and global relationships · whatwg/html@0866f1b</cite>
(<time>2016-03-28 00:31:04 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/0866f1b3f4b4ea5a99a30909e9bbe557dea0b460">https://github.com/whatwg/html/commit/0866f1b3f4b4ea5a99a30909e9bbe557dea0b460</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="65" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[65]</anchor-end> <cite xml:lang="en">Fix writable stream writer manual usage example</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">domenic</anchor>著, <time>2018-02-01 02:50:02 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/streams/commit/3dffaaa475840161ee05d1d1e0c931046361239d">https://github.com/whatwg/streams/commit/3dffaaa475840161ee05d1d1e0c931046361239d</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[66]</anchor-end> <cite xml:lang="en">Use the DOM manipulation task source for promise-related events</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CYBAI</anchor>著, <time>2019-03-30 00:46:38 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/d0feee54f85f60617811f2ea32a115e34233e606">https://github.com/whatwg/html/commit/d0feee54f85f60617811f2ea32a115e34233e606</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="67" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[67]</anchor-end> <cite xml:lang="en">&quot;Notify about rejected promises&quot; is missing a task source · Issue #3731 · whatwg/html</cite>
(<time>2019-08-23 14:33:13 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/issues/3731">https://github.com/whatwg/html/issues/3731</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="68" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[68]</anchor-end> <cite xml:lang="en">Use DOM manipulation task source for promise related events by CYBAI · Pull Request #4462 · whatwg/html</cite>
(<time>2019-08-23 14:33:45 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/pull/4462">https://github.com/whatwg/html/pull/4462</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="69" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[69]</anchor-end> <cite xml:lang="en">Add reference to DOM manipulation task source for unhandled promise r… by KiChjang · Pull Request #3844 · whatwg/html</cite>
(<time>2019-08-23 14:34:14 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/pull/3844">https://github.com/whatwg/html/pull/3844</anchor-external></p></section></body></html>