<h3>Returns</h3><p>The result of concatenating the array of leaf indices found by matching them with the provided commitment values, followed by the array of all leaf indices, including all of the formerly mentioned values given that they are valid. Values which have not been matched, meaning probably invalid values, will be <code>0</code>.</p>
</div><asideclass="tsd-sources">
<ul>
<li>Defined in @tornado/sdk-core/dist/index.d.ts:81</li></ul></aside></section>
<li>Defined in @tornado/sdk-core/dist/index.d.ts:82</li></ul></aside></section>
<p>Inherited from <ahref="Network.Synchronizer.html">Synchronizer</a>.<ahref="Network.Synchronizer.html#clearListenerByIndex">clearListenerByIndex</a></p>
<ul>
<li>Defined in @tornado/sdk-chain/dist/index.d.ts:67</li></ul></aside></li></ul></section>
<li>Defined in @tornado/sdk-chain/dist/index.d.ts:68</li></ul></aside></li></ul></section>
@ -465,7 +465,7 @@ regular <code>'error'</code> listener is installed.</p>
<h4class="tsd-returns-title">Returns <spanclass="tsd-signature-type ">Promise</span><spanclass="tsd-signature-symbol"><</span><spanclass="tsd-signature-type">string</span><spanclass="tsd-signature-symbol">[]</span><spanclass="tsd-signature-symbol">[]</span><spanclass="tsd-signature-symbol">></span></h4><p>The proofs for which the user should then decide whether to use a relayer (recommended, but decide carefully which one) or use his own wallet (if needed).</p>
<asideclass="tsd-sources">
<ul>
<li>Defined in @tornado/sdk-core/dist/index.d.ts:74</li></ul></aside></li></ul></section>
<li>Defined in @tornado/sdk-core/dist/index.d.ts:75</li></ul></aside></li></ul></section>
@ -487,7 +487,7 @@ regular <code>'error'</code> listener is installed.</p>
<h4class="tsd-returns-title">Returns <ahref="../modules/Transactions.html"class="tsd-signature-type tsd-kind-namespace">Transactions</a><spanclass="tsd-signature-symbol">.</span><ahref="../interfaces/Transactions.Deposit.html"class="tsd-signature-type tsd-kind-interface">Deposit</a></h4><p>A promise which resolves to the created transaction.</p>
<asideclass="tsd-sources">
<ul>
<li>Defined in @tornado/sdk-core/dist/index.d.ts:99</li></ul></aside></li></ul></section>
<li>Defined in @tornado/sdk-core/dist/index.d.ts:100</li></ul></aside></li></ul></section>
<divclass="tsd-comment tsd-typography"><p>The number of deposits per instance, whether or not to populate the transactions (only in the sense of encoding transaction data), and whether to backup notes and invoices. Defaults: <code>depositsPerInstance = [1]*instance_num, doNotPopulate = false, backup { notes = true, invoices = false }</code></p>
<divclass="tsd-comment tsd-typography"><p>The number of deposits per instance, whether or not to populate the transactions (only in the sense of encoding transaction data), whether to backup notes and invoices, and whether to call the instance directly instead of the router. Defaults: <code>depositsPerInstance = [1]*instance_num, doNotPopulate = false, callInstanceDirectly = false, backup { notes = true, invoices = false }</code></p>
</div></li></ul></div>
<h4class="tsd-returns-title">Returns <ahref="../modules/Transactions.html"class="tsd-signature-type tsd-kind-namespace">Transactions</a><spanclass="tsd-signature-symbol">.</span><ahref="../interfaces/Transactions.Deposit.html"class="tsd-signature-type tsd-kind-interface">Deposit</a><spanclass="tsd-signature-symbol">[]</span></h4><p>A promise which resolves to the created transactions.</p>
<asideclass="tsd-sources">
<ul>
<li>Defined in @tornado/sdk-core/dist/index.d.ts:107</li></ul></aside></li></ul></section>
<li>Defined in @tornado/sdk-core/dist/index.d.ts:108</li></ul></aside></li></ul></section>
@ -520,7 +520,7 @@ regular <code>'error'</code> listener is installed.</p>
<divclass="tsd-comment tsd-typography"><p>Synchronously calls each of the listeners registered for the event named<code>eventName</code>, in the order they were registered, passing the supplied arguments
to each.</p>
<p>Returns <code>true</code> if the event had listeners, <code>false</code> otherwise.</p>
<pre><codeclass="language-js"><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">EventEmitter</span><spanclass="hl-0"> = </span><spanclass="hl-5">require</span><spanclass="hl-0">(</span><spanclass="hl-6">'events'</span><spanclass="hl-0">);</span><br/><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">myEmitter</span><spanclass="hl-0"> = </span><spanclass="hl-3">new</span><spanclass="hl-0"></span><spanclass="hl-5">EventEmitter</span><spanclass="hl-0">();</span><br/><br/><spanclass="hl-7">// First listener</span><br/><spanclass="hl-1">myEmitter</span><spanclass="hl-0">.</span><spanclass="hl-5">on</span><spanclass="hl-0">(</span><spanclass="hl-6">'event'</span><spanclass="hl-0">, </span><spanclass="hl-3">function</span><spanclass="hl-0"></span><spanclass="hl-5">firstListener</span><spanclass="hl-0">() {</span><br/><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-6">'Helloooo! first listener'</span><spanclass="hl-0">);</span><br/><spanclass="hl-0">});</span><br/><spanclass="hl-7">// Second listener</span><br/><spanclass="hl-1">myEmitter</span><spanclass="hl-0">.</span><spanclass="hl-5">on</span><spanclass="hl-0">(</span><spanclass="hl-6">'event'</span><spanclass="hl-0">, </span><spanclass="hl-3">function</span><spanclass="hl-0"></span><spanclass="hl-5">secondListener</span><spanclass="hl-0">(</span><spanclass="hl-1">arg1</span><spanclass="hl-0">, </span><spanclass="hl-1">arg2</span><spanclass="hl-0">) {</span><br/><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-6">`event with parameters </span><spanclass="hl-3">${</span><spanclass="hl-1">arg1</span><spanclass="hl-3">}</span><spanclass="hl-6">, </span><spanclass="hl-3">${</span><spanclass="hl-1">arg2</span><spanclass="hl-3">}</span><spanclass="hl-6"> in second listener`</span><spanclass="hl-0">);</span><br/><spanclass="hl-0">});</span><br/><spanclass="hl-7">// Third listener</span><br/><spanclass="hl-1">myEmitter</span><spanclass="hl-0">.</span><spanclass="hl-5">on</span><spanclass="hl-0">(</span><spanclass="hl-6">'event'</span><spanclass="hl-0">, </span><spanclass="hl-3">function</span><spanclass="hl-0"></span><spanclass="hl-5">thirdListener</span><spanclass="hl-0">(...</span><spanclass="hl-1">args</span><spanclass="hl-0">) {</span><br/><spanclass="hl-0"></span><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">parameters</span><spanclass="hl-0"> = </span><spanclass="hl-1">args</span><spanclass="hl-0">.</span><spanclass="hl-5">join</span><spanclass="hl-0">(</span><spanclass="hl-6">', '</span><spanclass="hl-0">);</span><br/><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-6">`event with parameters </span><spanclass="hl-3">${</span><spanclass="hl-1">parameters</span><spanclass="hl-3">}</span><spanclass="hl-6"> in third listener`</span><spanclass="hl-0">);</span><br/><spanclass="hl-0">});</span><br/><br/><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-1">myEmitter</span><spanclass="hl-0">.</span><spanclass="hl-5">listeners</span><spanclass="hl-0">(</span><spanclass="hl-6">'event'</span><spanclass="hl-0">));</span><br/><br/><spanclass="hl-1">myEmitter</span><spanclass="hl-0">.</span><spanclass="hl-5">emit</span><spanclass="hl-0">(</span><spanclass="hl-6">'event'</span><spanclass="hl-0">, </span><spanclass="hl-2">1</span><spanclass="hl-0">, </span><spanclass="hl-2">2</span><spanclass="hl-0">, </span><spanclass="hl-2">3</span><spanclass="hl-0">, </span><spanclass="hl-2">4</span><spanclass="hl-0">, </span><spanclass="hl-2">5</span><spanclass="hl-0">);</span><br/><br/><spanclass="hl-7">// Prints:</span><br/><spanclass="hl-7">// [</span><br/><spanclass="hl-7">// [Function: firstListener],</span><br/><spanclass="hl-7">// [Function: secondListener],</span><br/><spanclass="hl-7">// [Function: thirdListener]</span><br/><spanclass="hl-7">// ]</span><br/><spanclass="hl-7">// Helloooo! first listener</span><br/><spanclass="hl-7">// event with parameters 1, 2 in second listener</span><br/><spanclass="hl-7">// event with parameters 1, 2, 3, 4, 5 in third listener</span>
<pre><codeclass="language-js"><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">EventEmitter</span><spanclass="hl-1"> = </span><spanclass="hl-5">require</span><spanclass="hl-1">(</span><spanclass="hl-6">'events'</span><spanclass="hl-1">);</span><br/><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">myEmitter</span><spanclass="hl-1"> = </span><spanclass="hl-3">new</span><spanclass="hl-1"></span><spanclass="hl-5">EventEmitter</span><spanclass="hl-1">();</span><br/><br/><spanclass="hl-7">// First listener</span><br/><spanclass="hl-0">myEmitter</span><spanclass="hl-1">.</span><spanclass="hl-5">on</span><spanclass="hl-1">(</span><spanclass="hl-6">'event'</span><spanclass="hl-1">, </span><spanclass="hl-3">function</span><spanclass="hl-1"></span><spanclass="hl-5">firstListener</span><spanclass="hl-1">() {</span><br/><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-6">'Helloooo! first listener'</span><spanclass="hl-1">);</span><br/><spanclass="hl-1">});</span><br/><spanclass="hl-7">// Second listener</span><br/><spanclass="hl-0">myEmitter</span><spanclass="hl-1">.</span><spanclass="hl-5">on</span><spanclass="hl-1">(</span><spanclass="hl-6">'event'</span><spanclass="hl-1">, </span><spanclass="hl-3">function</span><spanclass="hl-1"></span><spanclass="hl-5">secondListener</span><spanclass="hl-1">(</span><spanclass="hl-0">arg1</span><spanclass="hl-1">, </span><spanclass="hl-0">arg2</span><spanclass="hl-1">) {</span><br/><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-6">`event with parameters </span><spanclass="hl-3">${</span><spanclass="hl-0">arg1</span><spanclass="hl-3">}</span><spanclass="hl-6">, </span><spanclass="hl-3">${</span><spanclass="hl-0">arg2</span><spanclass="hl-3">}</span><spanclass="hl-6"> in second listener`</span><spanclass="hl-1">);</span><br/><spanclass="hl-1">});</span><br/><spanclass="hl-7">// Third listener</span><br/><spanclass="hl-0">myEmitter</span><spanclass="hl-1">.</span><spanclass="hl-5">on</span><spanclass="hl-1">(</span><spanclass="hl-6">'event'</span><spanclass="hl-1">, </span><spanclass="hl-3">function</span><spanclass="hl-1"></span><spanclass="hl-5">thirdListener</span><spanclass="hl-1">(...</span><spanclass="hl-0">args</span><spanclass="hl-1">) {</span><br/><spanclass="hl-1"></span><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">parameters</span><spanclass="hl-1"> = </span><spanclass="hl-0">args</span><spanclass="hl-1">.</span><spanclass="hl-5">join</span><spanclass="hl-1">(</span><spanclass="hl-6">', '</span><spanclass="hl-1">);</span><br/><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-6">`event with parameters </span><spanclass="hl-3">${</span><spanclass="hl-0">parameters</span><spanclass="hl-3">}</span><spanclass="hl-6"> in third listener`</span><spanclass="hl-1">);</span><br/><spanclass="hl-1">});</span><br/><br/><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-0">myEmitter</span><spanclass="hl-1">.</span><spanclass="hl-5">listeners</span><spanclass="hl-1">(</span><spanclass="hl-6">'event'</span><spanclass="hl-1">));</span><br/><br/><spanclass="hl-0">myEmitter</span><spanclass="hl-1">.</span><spanclass="hl-5">emit</span><spanclass="hl-1">(</span><spanclass="hl-6">'event'</span><spanclass="hl-1">, </span><spanclass="hl-2">1</span><spanclass="hl-1">, </span><spanclass="hl-2">2</span><spanclass="hl-1">, </span><spanclass="hl-2">3</span><spanclass="hl-1">, </span><spanclass="hl-2">4</span><spanclass="hl-1">, </span><spanclass="hl-2">5</span><spanclass="hl-1">);</span><br/><br/><spanclass="hl-7">// Prints:</span><br/><spanclass="hl-7">// [</span><br/><spanclass="hl-7">// [Function: firstListener],</span><br/><spanclass="hl-7">// [Function: secondListener],</span><br/><spanclass="hl-7">// [Function: thirdListener]</span><br/><spanclass="hl-7">// ]</span><br/><spanclass="hl-7">// Helloooo! first listener</span><br/><spanclass="hl-7">// event with parameters 1, 2 in second listener</span><br/><spanclass="hl-7">// event with parameters 1, 2, 3, 4, 5 in third listener</span>
</code><button>Copy</button></pre>
<h3>Since</h3><p>v0.1.26</p>
@ -543,7 +543,7 @@ to each.</p>
<liclass="tsd-description">
<divclass="tsd-comment tsd-typography"><p>Returns an array listing the events for which the emitter has registered
listeners. The values in the array are strings or <code>Symbol</code>s.</p>
@ -632,14 +632,14 @@ set by <code>emitter.setMaxListeners(n)</code> or defaults to <a href="Core.html
<p>Inherited from <ahref="Network.Synchronizer.html">Synchronizer</a>.<ahref="Network.Synchronizer.html#getMaxListeners">getMaxListeners</a></p>
<ul>
<li>Defined in .yarn/cache/@types-node-npm-18.16.2-81a2b61beb-7ad66d23b3.zip/node_modules/@types/node/events.d.ts:526</li></ul></aside></li></ul></section>
@ -900,12 +900,12 @@ is found in the list of the listeners of the event.</p>
event named <code>eventName</code>. No checks are made to see if the <code>listener</code> has
already been added. Multiple calls passing the same combination of <code>eventName</code>and <code>listener</code> will result in the <code>listener</code> being added, and called, multiple
<p>Returns a reference to the <code>EventEmitter</code>, so that calls can be chained.</p>
<p>By default, event listeners are invoked in the order they are added. The<code>emitter.prependListener()</code> method can be used as an alternative to add the
event listener to the beginning of the listeners array.</p>
@ -943,12 +943,12 @@ event listener to the beginning of the listeners array.</p>
<liclass="tsd-description">
<divclass="tsd-comment tsd-typography"><p>Adds a <strong>one-time</strong><code>listener</code> function for the event named <code>eventName</code>. The
next time <code>eventName</code> is triggered, this listener is removed and then invoked.</p>
<pre><codeclass="language-js"><spanclass="hl-1">server</span><spanclass="hl-0">.</span><spanclass="hl-5">once</span><spanclass="hl-0">(</span><spanclass="hl-6">'connection'</span><spanclass="hl-0">, (</span><spanclass="hl-1">stream</span><spanclass="hl-0">) </span><spanclass="hl-3">=></span><spanclass="hl-0"> {</span><br/><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-6">'Ah, we have our first user!'</span><spanclass="hl-0">);</span><br/><spanclass="hl-0">});</span>
<pre><codeclass="language-js"><spanclass="hl-0">server</span><spanclass="hl-1">.</span><spanclass="hl-5">once</span><spanclass="hl-1">(</span><spanclass="hl-6">'connection'</span><spanclass="hl-1">, (</span><spanclass="hl-0">stream</span><spanclass="hl-1">) </span><spanclass="hl-3">=></span><spanclass="hl-1"> {</span><br/><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-6">'Ah, we have our first user!'</span><spanclass="hl-1">);</span><br/><spanclass="hl-1">});</span>
</code><button>Copy</button></pre>
<p>Returns a reference to the <code>EventEmitter</code>, so that calls can be chained.</p>
<p>By default, event listeners are invoked in the order they are added. The<code>emitter.prependOnceListener()</code> method can be used as an alternative to add the
event listener to the beginning of the listeners array.</p>
@ -1014,7 +1014,7 @@ event listener to the beginning of the listeners array.</p>
event named <code>eventName</code>. No checks are made to see if the <code>listener</code> has
already been added. Multiple calls passing the same combination of <code>eventName</code>and <code>listener</code> will result in the <code>listener</code> being added, and called, multiple
<p>Returns a reference to the <code>EventEmitter</code>, so that calls can be chained.</p>
@ -1053,7 +1053,7 @@ times.</p>
<liclass="tsd-description">
<divclass="tsd-comment tsd-typography"><p>Adds a <strong>one-time</strong><code>listener</code> function for the event named <code>eventName</code> to the <em>beginning</em> of the listeners array. The next time <code>eventName</code> is triggered, this
listener is removed, and then invoked.</p>
<pre><codeclass="language-js"><spanclass="hl-1">server</span><spanclass="hl-0">.</span><spanclass="hl-5">prependOnceListener</span><spanclass="hl-0">(</span><spanclass="hl-6">'connection'</span><spanclass="hl-0">, (</span><spanclass="hl-1">stream</span><spanclass="hl-0">) </span><spanclass="hl-3">=></span><spanclass="hl-0"> {</span><br/><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-6">'Ah, we have our first user!'</span><spanclass="hl-0">);</span><br/><spanclass="hl-0">});</span>
<pre><codeclass="language-js"><spanclass="hl-0">server</span><spanclass="hl-1">.</span><spanclass="hl-5">prependOnceListener</span><spanclass="hl-1">(</span><spanclass="hl-6">'connection'</span><spanclass="hl-1">, (</span><spanclass="hl-0">stream</span><spanclass="hl-1">) </span><spanclass="hl-3">=></span><spanclass="hl-1"> {</span><br/><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-6">'Ah, we have our first user!'</span><spanclass="hl-1">);</span><br/><spanclass="hl-1">});</span>
</code><button>Copy</button></pre>
<p>Returns a reference to the <code>EventEmitter</code>, so that calls can be chained.</p>
@ -1092,7 +1092,7 @@ listener is removed, and then invoked.</p>
<liclass="tsd-description">
<divclass="tsd-comment tsd-typography"><p>Returns a copy of the array of listeners for the event named <code>eventName</code>,
including any wrappers (such as those created by <code>.once()</code>).</p>
<pre><codeclass="language-js"><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">emitter</span><spanclass="hl-0"> = </span><spanclass="hl-3">new</span><spanclass="hl-0"></span><spanclass="hl-5">EventEmitter</span><spanclass="hl-0">();</span><br/><spanclass="hl-1">emitter</span><spanclass="hl-0">.</span><spanclass="hl-5">once</span><spanclass="hl-0">(</span><spanclass="hl-6">'log'</span><spanclass="hl-0">, () </span><spanclass="hl-3">=></span><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-6">'log once'</span><spanclass="hl-0">));</span><br/><br/><spanclass="hl-7">// Returns a new Array with a function `onceWrapper` which has a property</span><br/><spanclass="hl-7">// `listener` which contains the original listener bound above</span><br/><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">listeners</span><spanclass="hl-0"> = </span><spanclass="hl-1">emitter</span><spanclass="hl-0">.</span><spanclass="hl-5">rawListeners</span><spanclass="hl-0">(</span><spanclass="hl-6">'log'</span><spanclass="hl-0">);</span><br/><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">logFnWrapper</span><spanclass="hl-0"> = </span><spanclass="hl-1">listeners</span><spanclass="hl-0">[</span><spanclass="hl-2">0</span><spanclass="hl-0">];</span><br/><br/><spanclass="hl-7">// Logs "log once" to the console and does not unbind the `once` event</span><br/><spanclass="hl-1">logFnWrapper</span><spanclass="hl-0">.</span><spanclass="hl-5">listener</span><spanclass="hl-0">();</span><br/><br/><spanclass="hl-7">// Logs "log once" to the console and removes the listener</span><br/><spanclass="hl-5">logFnWrapper</span><spanclass="hl-0">();</span><br/><br/><spanclass="hl-1">emitter</span><spanclass="hl-0">.</span><spanclass="hl-5">on</span><spanclass="hl-0">(</span><spanclass="hl-6">'log'</span><spanclass="hl-0">, () </span><spanclass="hl-3">=></span><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-6">'log persistently'</span><spanclass="hl-0">));</span><br/><spanclass="hl-7">// Will return a new Array with a single function bound by `.on()` above</span><br/><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">newListeners</span><spanclass="hl-0"> = </span><spanclass="hl-1">emitter</span><spanclass="hl-0">.</span><spanclass="hl-5">rawListeners</span><spanclass="hl-0">(</span><spanclass="hl-6">'log'</span><spanclass="hl-0">);</span><br/><br/><spanclass="hl-7">// Logs "log persistently" twice</span><br/><spanclass="hl-1">newListeners</span><spanclass="hl-0">[</span><spanclass="hl-2">0</span><spanclass="hl-0">]();</span><br/><spanclass="hl-1">emitter</span><spanclass="hl-0">.</span><spanclass="hl-5">emit</span><spanclass="hl-0">(</span><spanclass="hl-6">'log'</span><spanclass="hl-0">);</span>
<pre><codeclass="language-js"><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">emitter</span><spanclass="hl-1"> = </span><spanclass="hl-3">new</span><spanclass="hl-1"></span><spanclass="hl-5">EventEmitter</span><spanclass="hl-1">();</span><br/><spanclass="hl-0">emitter</span><spanclass="hl-1">.</span><spanclass="hl-5">once</span><spanclass="hl-1">(</span><spanclass="hl-6">'log'</span><spanclass="hl-1">, () </span><spanclass="hl-3">=></span><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-6">'log once'</span><spanclass="hl-1">));</span><br/><br/><spanclass="hl-7">// Returns a new Array with a function `onceWrapper` which has a property</span><br/><spanclass="hl-7">// `listener` which contains the original listener bound above</span><br/><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">listeners</span><spanclass="hl-1"> = </span><spanclass="hl-0">emitter</span><spanclass="hl-1">.</span><spanclass="hl-5">rawListeners</span><spanclass="hl-1">(</span><spanclass="hl-6">'log'</span><spanclass="hl-1">);</span><br/><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">logFnWrapper</span><spanclass="hl-1"> = </span><spanclass="hl-0">listeners</span><spanclass="hl-1">[</span><spanclass="hl-2">0</span><spanclass="hl-1">];</span><br/><br/><spanclass="hl-7">// Logs "log once" to the console and does not unbind the `once` event</span><br/><spanclass="hl-0">logFnWrapper</span><spanclass="hl-1">.</span><spanclass="hl-5">listener</span><spanclass="hl-1">();</span><br/><br/><spanclass="hl-7">// Logs "log once" to the console and removes the listener</span><br/><spanclass="hl-5">logFnWrapper</span><spanclass="hl-1">();</span><br/><br/><spanclass="hl-0">emitter</span><spanclass="hl-1">.</span><spanclass="hl-5">on</span><spanclass="hl-1">(</span><spanclass="hl-6">'log'</span><spanclass="hl-1">, () </span><spanclass="hl-3">=></span><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-6">'log persistently'</span><spanclass="hl-1">));</span><br/><spanclass="hl-7">// Will return a new Array with a single function bound by `.on()` above</span><br/><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">newListeners</span><spanclass="hl-1"> = </span><spanclass="hl-0">emitter</span><spanclass="hl-1">.</span><spanclass="hl-5">rawListeners</span><spanclass="hl-1">(</span><spanclass="hl-6">'log'</span><spanclass="hl-1">);</span><br/><br/><spanclass="hl-7">// Logs "log persistently" twice</span><br/><spanclass="hl-0">newListeners</span><spanclass="hl-1">[</span><spanclass="hl-2">0</span><spanclass="hl-1">]();</span><br/><spanclass="hl-0">emitter</span><spanclass="hl-1">.</span><spanclass="hl-5">emit</span><spanclass="hl-1">(</span><spanclass="hl-6">'log'</span><spanclass="hl-1">);</span>
</code><button>Copy</button></pre>
<h3>Since</h3><p>v9.4.0</p>
@ -1134,7 +1134,7 @@ component or module (e.g. sockets or file streams).</p>
<divclass="tsd-comment tsd-typography"><p>Removes the specified <code>listener</code> from the listener array for the event named<code>eventName</code>.</p>
<p><code>removeListener()</code> will remove, at most, one instance of a listener from the
listener array. If any single listener has been added multiple times to the
@ -1143,7 +1143,7 @@ called multiple times to remove each instance.</p>
<p>Once an event is emitted, all listeners attached to it at the
time of emitting are called in order. This implies that any<code>removeListener()</code> or <code>removeAllListeners()</code> calls <em>after</em> emitting and <em>before</em> the last listener finishes execution
will not remove them from<code>emit()</code> in progress. Subsequent events behave as expected.</p>
<pre><codeclass="language-js"><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">myEmitter</span><spanclass="hl-0"> = </span><spanclass="hl-3">new</span><spanclass="hl-0"></span><spanclass="hl-5">MyEmitter</span><spanclass="hl-0">();</span><br/><br/><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-5">callbackA</span><spanclass="hl-0"> = () </span><spanclass="hl-3">=></span><spanclass="hl-0"> {</span><br/><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-6">'A'</span><spanclass="hl-0">);</span><br/><spanclass="hl-0"></span><spanclass="hl-1">myEmitter</span><spanclass="hl-0">.</span><spanclass="hl-5">removeListener</span><spanclass="hl-0">(</span><spanclass="hl-6">'event'</span><spanclass="hl-0">, </span><spanclass="hl-1">callbackB</span><spanclass="hl-0">);</span><br/><spanclass="hl-0">};</span><br/><br/><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-5">callbackB</span><spanclass="hl-0"> = () </span><spanclass="hl-3">=></span><spanclass="hl-0"> {</span><br/><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-6">'B'</span><spanclass="hl-0">);</span><br/><spanclass="hl-0">};</span><br/><br/><spanclass="hl-1">myEmitter</span><spanclass="hl-0">.</span><spanclass="hl-5">on</span><spanclass="hl-0">(</span><spanclass="hl-6">'event'</span><spanclass="hl-0">, </span><spanclass="hl-1">callbackA</span><spanclass="hl-0">);</span><br/><br/><spanclass="hl-1">myEmitter</span><spanclass="hl-0">.</span><spanclass="hl-5">on</span><spanclass="hl-0">(</span><spanclass="hl-6">'event'</span><spanclass="hl-0">, </span><spanclass="hl-1">callbackB</span><spanclass="hl-0">);</span><br/><br/><spanclass="hl-7">// callbackA removes listener callbackB but it will still be called.</span><br/><spanclass="hl-7">// Internal listener array at time of emit [callbackA, callbackB]</span><br/><spanclass="hl-1">myEmitter</span><spanclass="hl-0">.</span><spanclass="hl-5">emit</span><spanclass="hl-0">(</span><spanclass="hl-6">'event'</span><spanclass="hl-0">);</span><br/><spanclass="hl-7">// Prints:</span><br/><spanclass="hl-7">// A</span><br/><spanclass="hl-7">// B</span><br/><br/><spanclass="hl-7">// callbackB is now removed.</span><br/><spanclass="hl-7">// Internal listener array [callbackA]</span><br/><spanclass="hl-1">myEmitter</span><spanclass="hl-0">.</span><spanclass="hl-5">emit</span><spanclass="hl-0">(</span><spanclass="hl-6">'event'</span><spanclass="hl-0">);</span><br/><spanclass="hl-7">// Prints:</span><br/><spanclass="hl-7">// A</span>
<pre><codeclass="language-js"><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">myEmitter</span><spanclass="hl-1"> = </span><spanclass="hl-3">new</span><spanclass="hl-1"></span><spanclass="hl-5">MyEmitter</span><spanclass="hl-1">();</span><br/><br/><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-5">callbackA</span><spanclass="hl-1"> = () </span><spanclass="hl-3">=></span><spanclass="hl-1"> {</span><br/><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-6">'A'</span><spanclass="hl-1">);</span><br/><spanclass="hl-1"></span><spanclass="hl-0">myEmitter</span><spanclass="hl-1">.</span><spanclass="hl-5">removeListener</span><spanclass="hl-1">(</span><spanclass="hl-6">'event'</span><spanclass="hl-1">, </span><spanclass="hl-0">callbackB</span><spanclass="hl-1">);</span><br/><spanclass="hl-1">};</span><br/><br/><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-5">callbackB</span><spanclass="hl-1"> = () </span><spanclass="hl-3">=></span><spanclass="hl-1"> {</span><br/><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-6">'B'</span><spanclass="hl-1">);</span><br/><spanclass="hl-1">};</span><br/><br/><spanclass="hl-0">myEmitter</span><spanclass="hl-1">.</span><spanclass="hl-5">on</span><spanclass="hl-1">(</span><spanclass="hl-6">'event'</span><spanclass="hl-1">, </span><spanclass="hl-0">callbackA</span><spanclass="hl-1">);</span><br/><br/><spanclass="hl-0">myEmitter</span><spanclass="hl-1">.</span><spanclass="hl-5">on</span><spanclass="hl-1">(</span><spanclass="hl-6">'event'</span><spanclass="hl-1">, </span><spanclass="hl-0">callbackB</span><spanclass="hl-1">);</span><br/><br/><spanclass="hl-7">// callbackA removes listener callbackB but it will still be called.</span><br/><spanclass="hl-7">// Internal listener array at time of emit [callbackA, callbackB]</span><br/><spanclass="hl-0">myEmitter</span><spanclass="hl-1">.</span><spanclass="hl-5">emit</span><spanclass="hl-1">(</span><spanclass="hl-6">'event'</span><spanclass="hl-1">);</span><br/><spanclass="hl-7">// Prints:</span><br/><spanclass="hl-7">// A</span><br/><spanclass="hl-7">// B</span><br/><br/><spanclass="hl-7">// callbackB is now removed.</span><br/><spanclass="hl-7">// Internal listener array [callbackA]</span><br/><spanclass="hl-0">myEmitter</span><spanclass="hl-1">.</span><spanclass="hl-5">emit</span><spanclass="hl-1">(</span><spanclass="hl-6">'event'</span><spanclass="hl-1">);</span><br/><spanclass="hl-7">// Prints:</span><br/><spanclass="hl-7">// A</span>
</code><button>Copy</button></pre>
<p>Because listeners are managed using an internal array, calling this will
change the position indices of any listener registered <em>after</em> the listener
@ -1153,7 +1153,7 @@ the <code>emitter.listeners()</code> method will need to be recreated.</p>
<p>When a single function has been added as a handler multiple times for a single
event (as in the example below), <code>removeListener()</code> will remove the most
recently added instance. In the example the <code>once('ping')</code>listener is removed:</p>
<divclass="tsd-comment tsd-typography"><p>A class method that returns the number of listeners for the given <code>eventName</code>registered on the given <code>emitter</code>.</p>
<divclass="tsd-comment tsd-typography"><pre><codeclass="language-js"><spanclass="hl-3">const</span><spanclass="hl-0"> { </span><spanclass="hl-4">on</span><spanclass="hl-0">, </span><spanclass="hl-4">EventEmitter</span><spanclass="hl-0"> } = </span><spanclass="hl-5">require</span><spanclass="hl-0">(</span><spanclass="hl-6">'events'</span><spanclass="hl-0">);</span><br/><br/><spanclass="hl-0">(</span><spanclass="hl-3">async</span><spanclass="hl-0"> () </span><spanclass="hl-3">=></span><spanclass="hl-0"> {</span><br/><spanclass="hl-0"></span><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">ee</span><spanclass="hl-0"> = </span><spanclass="hl-3">new</span><spanclass="hl-0"></span><spanclass="hl-5">EventEmitter</span><spanclass="hl-0">();</span><br/><br/><spanclass="hl-0"></span><spanclass="hl-7">// Emit later on</span><br/><spanclass="hl-0"></span><spanclass="hl-1">process</span><spanclass="hl-0">.</span><spanclass="hl-5">nextTick</span><spanclass="hl-0">(() </span><spanclass="hl-3">=></span><spanclass="hl-0"> {</span><br/><spanclass="hl-0"></span><spanclass="hl-1">ee</span><spanclass="hl-0">.</span><spanclass="hl-5">emit</span><spanclass="hl-0">(</span><spanclass="hl-6">'foo'</span><spanclass="hl-0">, </span><spanclass="hl-6">'bar'</span><spanclass="hl-0">);</span><br/><spanclass="hl-0"></span><spanclass="hl-1">ee</span><spanclass="hl-0">.</span><spanclass="hl-5">emit</span><spanclass="hl-0">(</span><spanclass="hl-6">'foo'</span><spanclass="hl-0">, </span><spanclass="hl-2">42</span><spanclass="hl-0">);</span><br/><spanclass="hl-0"> });</span><br/><br/><spanclass="hl-0"></span><spanclass="hl-8">for</span><spanclass="hl-0"></span><spanclass="hl-8">await</span><spanclass="hl-0"> (</span><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">event</span><spanclass="hl-0"></span><spanclass="hl-3">of</span><spanclass="hl-0"></span><spanclass="hl-5">on</span><spanclass="hl-0">(</span><spanclass="hl-1">ee</span><spanclass="hl-0">, </span><spanclass="hl-6">'foo'</span><spanclass="hl-0">)) {</span><br/><spanclass="hl-0"></span><spanclass="hl-7">// The execution of this inner block is synchronous and it</span><br/><spanclass="hl-0"></span><spanclass="hl-7">// processes one event at a time (even with await). Do not use</span><br/><spanclass="hl-0"></span><spanclass="hl-7">// if concurrent execution is required.</span><br/><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-1">event</span><spanclass="hl-0">); </span><spanclass="hl-7">// prints ['bar'] [42]</span><br/><spanclass="hl-0"> }</span><br/><spanclass="hl-0"></span><spanclass="hl-7">// Unreachable here</span><br/><spanclass="hl-0">})();</span>
<divclass="tsd-comment tsd-typography"><pre><codeclass="language-js"><spanclass="hl-3">const</span><spanclass="hl-1"> { </span><spanclass="hl-4">on</span><spanclass="hl-1">, </span><spanclass="hl-4">EventEmitter</span><spanclass="hl-1"> } = </span><spanclass="hl-5">require</span><spanclass="hl-1">(</span><spanclass="hl-6">'events'</span><spanclass="hl-1">);</span><br/><br/><spanclass="hl-1">(</span><spanclass="hl-3">async</span><spanclass="hl-1"> () </span><spanclass="hl-3">=></span><spanclass="hl-1"> {</span><br/><spanclass="hl-1"></span><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">ee</span><spanclass="hl-1"> = </span><spanclass="hl-3">new</span><spanclass="hl-1"></span><spanclass="hl-5">EventEmitter</span><spanclass="hl-1">();</span><br/><br/><spanclass="hl-1"></span><spanclass="hl-7">// Emit later on</span><br/><spanclass="hl-1"></span><spanclass="hl-0">process</span><spanclass="hl-1">.</span><spanclass="hl-5">nextTick</span><spanclass="hl-1">(() </span><spanclass="hl-3">=></span><spanclass="hl-1"> {</span><br/><spanclass="hl-1"></span><spanclass="hl-0">ee</span><spanclass="hl-1">.</span><spanclass="hl-5">emit</span><spanclass="hl-1">(</span><spanclass="hl-6">'foo'</span><spanclass="hl-1">, </span><spanclass="hl-6">'bar'</span><spanclass="hl-1">);</span><br/><spanclass="hl-1"></span><spanclass="hl-0">ee</span><spanclass="hl-1">.</span><spanclass="hl-5">emit</span><spanclass="hl-1">(</span><spanclass="hl-6">'foo'</span><spanclass="hl-1">, </span><spanclass="hl-2">42</span><spanclass="hl-1">);</span><br/><spanclass="hl-1"> });</span><br/><br/><spanclass="hl-1"></span><spanclass="hl-8">for</span><spanclass="hl-1"></span><spanclass="hl-8">await</span><spanclass="hl-1"> (</span><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">event</span><spanclass="hl-1"></span><spanclass="hl-3">of</span><spanclass="hl-1"></span><spanclass="hl-5">on</span><spanclass="hl-1">(</span><spanclass="hl-0">ee</span><spanclass="hl-1">, </span><spanclass="hl-6">'foo'</span><spanclass="hl-1">)) {</span><br/><spanclass="hl-1"></span><spanclass="hl-7">// The execution of this inner block is synchronous and it</span><br/><spanclass="hl-1"></span><spanclass="hl-7">// processes one event at a time (even with await). Do not use</span><br/><spanclass="hl-1"></span><spanclass="hl-7">// if concurrent execution is required.</span><br/><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-0">event</span><spanclass="hl-1">); </span><spanclass="hl-7">// prints ['bar'] [42]</span><br/><spanclass="hl-1"> }</span><br/><spanclass="hl-1"></span><spanclass="hl-7">// Unreachable here</span><br/><spanclass="hl-1">})();</span>
</code><button>Copy</button></pre>
<p>Returns an <code>AsyncIterator</code> that iterates <code>eventName</code> events. It will throw
if the <code>EventEmitter</code> emits <code>'error'</code>. It removes all listeners when
exiting the loop. The <code>value</code> returned by each iteration is an array
composed of the emitted event arguments.</p>
<p>An <code>AbortSignal</code> can be used to cancel waiting on events:</p>
<pre><codeclass="language-js"><spanclass="hl-3">const</span><spanclass="hl-0"> { </span><spanclass="hl-4">on</span><spanclass="hl-0">, </span><spanclass="hl-4">EventEmitter</span><spanclass="hl-0"> } = </span><spanclass="hl-5">require</span><spanclass="hl-0">(</span><spanclass="hl-6">'events'</span><spanclass="hl-0">);</span><br/><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">ac</span><spanclass="hl-0"> = </span><spanclass="hl-3">new</span><spanclass="hl-0"></span><spanclass="hl-5">AbortController</span><spanclass="hl-0">();</span><br/><br/><spanclass="hl-0">(</span><spanclass="hl-3">async</span><spanclass="hl-0"> () </span><spanclass="hl-3">=></span><spanclass="hl-0"> {</span><br/><spanclass="hl-0"></span><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">ee</span><spanclass="hl-0"> = </span><spanclass="hl-3">new</span><spanclass="hl-0"></span><spanclass="hl-5">EventEmitter</span><spanclass="hl-0">();</span><br/><br/><spanclass="hl-0"></span><spanclass="hl-7">// Emit later on</span><br/><spanclass="hl-0"></span><spanclass="hl-1">process</span><spanclass="hl-0">.</span><spanclass="hl-5">nextTick</span><spanclass="hl-0">(() </span><spanclass="hl-3">=></span><spanclass="hl-0"> {</span><br/><spanclass="hl-0"></span><spanclass="hl-1">ee</span><spanclass="hl-0">.</span><spanclass="hl-5">emit</span><spanclass="hl-0">(</span><spanclass="hl-6">'foo'</span><spanclass="hl-0">, </span><spanclass="hl-6">'bar'</span><spanclass="hl-0">);</span><br/><spanclass="hl-0"></span><spanclass="hl-1">ee</span><spanclass="hl-0">.</span><spanclass="hl-5">emit</span><spanclass="hl-0">(</span><spanclass="hl-6">'foo'</span><spanclass="hl-0">, </span><spanclass="hl-2">42</span><spanclass="hl-0">);</span><br/><spanclass="hl-0"> });</span><br/><br/><spanclass="hl-0"></span><spanclass="hl-8">for</span><spanclass="hl-0"></span><spanclass="hl-8">await</span><spanclass="hl-0"> (</span><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">event</span><spanclass="hl-0"></span><spanclass="hl-3">of</span><spanclass="hl-0"></span><spanclass="hl-5">on</span><spanclass="hl-0">(</span><spanclass="hl-1">ee</span><spanclass="hl-0">, </span><spanclass="hl-6">'foo'</span><spanclass="hl-0">, { </span><spanclass="hl-1">signal:</span><spanclass="hl-0"></span><spanclass="hl-1">ac</span><spanclass="hl-0">.</span><spanclass="hl-1">signal</span><spanclass="hl-0"> })) {</span><br/><spanclass="hl-0"></span><spanclass="hl-7">// The execution of this inner block is synchronous and it</span><br/><spanclass="hl-0"></span><spanclass="hl-7">// processes one event at a time (even with await). Do not use</span><br/><spanclass="hl-0"></span><spanclass="hl-7">// if concurrent execution is required.</span><br/><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-1">event</span><spanclass="hl-0">); </span><spanclass="hl-7">// prints ['bar'] [42]</span><br/><spanclass="hl-0"> }</span><br/><spanclass="hl-0"></span><spanclass="hl-7">// Unreachable here</span><br/><spanclass="hl-0">})();</span><br/><br/><spanclass="hl-1">process</span><spanclass="hl-0">.</span><spanclass="hl-5">nextTick</span><spanclass="hl-0">(() </span><spanclass="hl-3">=></span><spanclass="hl-0"></span><spanclass="hl-1">ac</span><spanclass="hl-0">.</span><spanclass="hl-5">abort</span><spanclass="hl-0">());</span>
<pre><codeclass="language-js"><spanclass="hl-3">const</span><spanclass="hl-1"> { </span><spanclass="hl-4">on</span><spanclass="hl-1">, </span><spanclass="hl-4">EventEmitter</span><spanclass="hl-1"> } = </span><spanclass="hl-5">require</span><spanclass="hl-1">(</span><spanclass="hl-6">'events'</span><spanclass="hl-1">);</span><br/><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">ac</span><spanclass="hl-1"> = </span><spanclass="hl-3">new</span><spanclass="hl-1"></span><spanclass="hl-5">AbortController</span><spanclass="hl-1">();</span><br/><br/><spanclass="hl-1">(</span><spanclass="hl-3">async</span><spanclass="hl-1"> () </span><spanclass="hl-3">=></span><spanclass="hl-1"> {</span><br/><spanclass="hl-1"></span><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">ee</span><spanclass="hl-1"> = </span><spanclass="hl-3">new</span><spanclass="hl-1"></span><spanclass="hl-5">EventEmitter</span><spanclass="hl-1">();</span><br/><br/><spanclass="hl-1"></span><spanclass="hl-7">// Emit later on</span><br/><spanclass="hl-1"></span><spanclass="hl-0">process</span><spanclass="hl-1">.</span><spanclass="hl-5">nextTick</span><spanclass="hl-1">(() </span><spanclass="hl-3">=></span><spanclass="hl-1"> {</span><br/><spanclass="hl-1"></span><spanclass="hl-0">ee</span><spanclass="hl-1">.</span><spanclass="hl-5">emit</span><spanclass="hl-1">(</span><spanclass="hl-6">'foo'</span><spanclass="hl-1">, </span><spanclass="hl-6">'bar'</span><spanclass="hl-1">);</span><br/><spanclass="hl-1"></span><spanclass="hl-0">ee</span><spanclass="hl-1">.</span><spanclass="hl-5">emit</span><spanclass="hl-1">(</span><spanclass="hl-6">'foo'</span><spanclass="hl-1">, </span><spanclass="hl-2">42</span><spanclass="hl-1">);</span><br/><spanclass="hl-1"> });</span><br/><br/><spanclass="hl-1"></span><spanclass="hl-8">for</span><spanclass="hl-1"></span><spanclass="hl-8">await</span><spanclass="hl-1"> (</span><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">event</span><spanclass="hl-1"></span><spanclass="hl-3">of</span><spanclass="hl-1"></span><spanclass="hl-5">on</span><spanclass="hl-1">(</span><spanclass="hl-0">ee</span><spanclass="hl-1">, </span><spanclass="hl-6">'foo'</span><spanclass="hl-1">, { </span><spanclass="hl-0">signal:</span><spanclass="hl-1"></span><spanclass="hl-0">ac</span><spanclass="hl-1">.</span><spanclass="hl-0">signal</span><spanclass="hl-1"> })) {</span><br/><spanclass="hl-1"></span><spanclass="hl-7">// The execution of this inner block is synchronous and it</span><br/><spanclass="hl-1"></span><spanclass="hl-7">// processes one event at a time (even with await). Do not use</span><br/><spanclass="hl-1"></span><spanclass="hl-7">// if concurrent execution is required.</span><br/><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-0">event</span><spanclass="hl-1">); </span><spanclass="hl-7">// prints ['bar'] [42]</span><br/><spanclass="hl-1"> }</span><br/><spanclass="hl-1"></span><spanclass="hl-7">// Unreachable here</span><br/><spanclass="hl-1">})();</span><br/><br/><spanclass="hl-0">process</span><spanclass="hl-1">.</span><spanclass="hl-5">nextTick</span><spanclass="hl-1">(() </span><spanclass="hl-3">=></span><spanclass="hl-1"></span><spanclass="hl-0">ac</span><spanclass="hl-1">.</span><spanclass="hl-5">abort</span><spanclass="hl-1">());</span>
</code><button>Copy</button></pre>
<h3>Since</h3><p>v13.6.0, v12.16.0</p>
@ -1353,15 +1353,15 @@ The <code>Promise</code> will resolve with an array of all the arguments emitted
given event.</p>
<p>This method is intentionally generic and works with the web platform <ahref="https://dom.spec.whatwg.org/#interface-eventtarget">EventTarget</a> interface, which has no special<code>'error'</code> event
semantics and does not listen to the <code>'error'</code> event.</p>
<p>The special handling of the <code>'error'</code> event is only used when <code>events.once()</code>is used to wait for another event. If <code>events.once()</code> is used to wait for the
'<code>error'</code> event itself, then it is treated as any other kind of event without
@ -193,7 +193,7 @@ regular <code>'error'</code> listener is installed.</p>
<divclass="tsd-comment tsd-typography"><p>Synchronously calls each of the listeners registered for the event named<code>eventName</code>, in the order they were registered, passing the supplied arguments
to each.</p>
<p>Returns <code>true</code> if the event had listeners, <code>false</code> otherwise.</p>
<pre><codeclass="language-js"><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">EventEmitter</span><spanclass="hl-0"> = </span><spanclass="hl-5">require</span><spanclass="hl-0">(</span><spanclass="hl-6">'events'</span><spanclass="hl-0">);</span><br/><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">myEmitter</span><spanclass="hl-0"> = </span><spanclass="hl-3">new</span><spanclass="hl-0"></span><spanclass="hl-5">EventEmitter</span><spanclass="hl-0">();</span><br/><br/><spanclass="hl-7">// First listener</span><br/><spanclass="hl-1">myEmitter</span><spanclass="hl-0">.</span><spanclass="hl-5">on</span><spanclass="hl-0">(</span><spanclass="hl-6">'event'</span><spanclass="hl-0">, </span><spanclass="hl-3">function</span><spanclass="hl-0"></span><spanclass="hl-5">firstListener</span><spanclass="hl-0">() {</span><br/><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-6">'Helloooo! first listener'</span><spanclass="hl-0">);</span><br/><spanclass="hl-0">});</span><br/><spanclass="hl-7">// Second listener</span><br/><spanclass="hl-1">myEmitter</span><spanclass="hl-0">.</span><spanclass="hl-5">on</span><spanclass="hl-0">(</span><spanclass="hl-6">'event'</span><spanclass="hl-0">, </span><spanclass="hl-3">function</span><spanclass="hl-0"></span><spanclass="hl-5">secondListener</span><spanclass="hl-0">(</span><spanclass="hl-1">arg1</span><spanclass="hl-0">, </span><spanclass="hl-1">arg2</span><spanclass="hl-0">) {</span><br/><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-6">`event with parameters </span><spanclass="hl-3">${</span><spanclass="hl-1">arg1</span><spanclass="hl-3">}</span><spanclass="hl-6">, </span><spanclass="hl-3">${</span><spanclass="hl-1">arg2</span><spanclass="hl-3">}</span><spanclass="hl-6"> in second listener`</span><spanclass="hl-0">);</span><br/><spanclass="hl-0">});</span><br/><spanclass="hl-7">// Third listener</span><br/><spanclass="hl-1">myEmitter</span><spanclass="hl-0">.</span><spanclass="hl-5">on</span><spanclass="hl-0">(</span><spanclass="hl-6">'event'</span><spanclass="hl-0">, </span><spanclass="hl-3">function</span><spanclass="hl-0"></span><spanclass="hl-5">thirdListener</span><spanclass="hl-0">(...</span><spanclass="hl-1">args</span><spanclass="hl-0">) {</span><br/><spanclass="hl-0"></span><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">parameters</span><spanclass="hl-0"> = </span><spanclass="hl-1">args</span><spanclass="hl-0">.</span><spanclass="hl-5">join</span><spanclass="hl-0">(</span><spanclass="hl-6">', '</span><spanclass="hl-0">);</span><br/><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-6">`event with parameters </span><spanclass="hl-3">${</span><spanclass="hl-1">parameters</span><spanclass="hl-3">}</span><spanclass="hl-6"> in third listener`</span><spanclass="hl-0">);</span><br/><spanclass="hl-0">});</span><br/><br/><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-1">myEmitter</span><spanclass="hl-0">.</span><spanclass="hl-5">listeners</span><spanclass="hl-0">(</span><spanclass="hl-6">'event'</span><spanclass="hl-0">));</span><br/><br/><spanclass="hl-1">myEmitter</span><spanclass="hl-0">.</span><spanclass="hl-5">emit</span><spanclass="hl-0">(</span><spanclass="hl-6">'event'</span><spanclass="hl-0">, </span><spanclass="hl-2">1</span><spanclass="hl-0">, </span><spanclass="hl-2">2</span><spanclass="hl-0">, </span><spanclass="hl-2">3</span><spanclass="hl-0">, </span><spanclass="hl-2">4</span><spanclass="hl-0">, </span><spanclass="hl-2">5</span><spanclass="hl-0">);</span><br/><br/><spanclass="hl-7">// Prints:</span><br/><spanclass="hl-7">// [</span><br/><spanclass="hl-7">// [Function: firstListener],</span><br/><spanclass="hl-7">// [Function: secondListener],</span><br/><spanclass="hl-7">// [Function: thirdListener]</span><br/><spanclass="hl-7">// ]</span><br/><spanclass="hl-7">// Helloooo! first listener</span><br/><spanclass="hl-7">// event with parameters 1, 2 in second listener</span><br/><spanclass="hl-7">// event with parameters 1, 2, 3, 4, 5 in third listener</span>
<pre><codeclass="language-js"><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">EventEmitter</span><spanclass="hl-1"> = </span><spanclass="hl-5">require</span><spanclass="hl-1">(</span><spanclass="hl-6">'events'</span><spanclass="hl-1">);</span><br/><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">myEmitter</span><spanclass="hl-1"> = </span><spanclass="hl-3">new</span><spanclass="hl-1"></span><spanclass="hl-5">EventEmitter</span><spanclass="hl-1">();</span><br/><br/><spanclass="hl-7">// First listener</span><br/><spanclass="hl-0">myEmitter</span><spanclass="hl-1">.</span><spanclass="hl-5">on</span><spanclass="hl-1">(</span><spanclass="hl-6">'event'</span><spanclass="hl-1">, </span><spanclass="hl-3">function</span><spanclass="hl-1"></span><spanclass="hl-5">firstListener</span><spanclass="hl-1">() {</span><br/><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-6">'Helloooo! first listener'</span><spanclass="hl-1">);</span><br/><spanclass="hl-1">});</span><br/><spanclass="hl-7">// Second listener</span><br/><spanclass="hl-0">myEmitter</span><spanclass="hl-1">.</span><spanclass="hl-5">on</span><spanclass="hl-1">(</span><spanclass="hl-6">'event'</span><spanclass="hl-1">, </span><spanclass="hl-3">function</span><spanclass="hl-1"></span><spanclass="hl-5">secondListener</span><spanclass="hl-1">(</span><spanclass="hl-0">arg1</span><spanclass="hl-1">, </span><spanclass="hl-0">arg2</span><spanclass="hl-1">) {</span><br/><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-6">`event with parameters </span><spanclass="hl-3">${</span><spanclass="hl-0">arg1</span><spanclass="hl-3">}</span><spanclass="hl-6">, </span><spanclass="hl-3">${</span><spanclass="hl-0">arg2</span><spanclass="hl-3">}</span><spanclass="hl-6"> in second listener`</span><spanclass="hl-1">);</span><br/><spanclass="hl-1">});</span><br/><spanclass="hl-7">// Third listener</span><br/><spanclass="hl-0">myEmitter</span><spanclass="hl-1">.</span><spanclass="hl-5">on</span><spanclass="hl-1">(</span><spanclass="hl-6">'event'</span><spanclass="hl-1">, </span><spanclass="hl-3">function</span><spanclass="hl-1"></span><spanclass="hl-5">thirdListener</span><spanclass="hl-1">(...</span><spanclass="hl-0">args</span><spanclass="hl-1">) {</span><br/><spanclass="hl-1"></span><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">parameters</span><spanclass="hl-1"> = </span><spanclass="hl-0">args</span><spanclass="hl-1">.</span><spanclass="hl-5">join</span><spanclass="hl-1">(</span><spanclass="hl-6">', '</span><spanclass="hl-1">);</span><br/><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-6">`event with parameters </span><spanclass="hl-3">${</span><spanclass="hl-0">parameters</span><spanclass="hl-3">}</span><spanclass="hl-6"> in third listener`</span><spanclass="hl-1">);</span><br/><spanclass="hl-1">});</span><br/><br/><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-0">myEmitter</span><spanclass="hl-1">.</span><spanclass="hl-5">listeners</span><spanclass="hl-1">(</span><spanclass="hl-6">'event'</span><spanclass="hl-1">));</span><br/><br/><spanclass="hl-0">myEmitter</span><spanclass="hl-1">.</span><spanclass="hl-5">emit</span><spanclass="hl-1">(</span><spanclass="hl-6">'event'</span><spanclass="hl-1">, </span><spanclass="hl-2">1</span><spanclass="hl-1">, </span><spanclass="hl-2">2</span><spanclass="hl-1">, </span><spanclass="hl-2">3</span><spanclass="hl-1">, </span><spanclass="hl-2">4</span><spanclass="hl-1">, </span><spanclass="hl-2">5</span><spanclass="hl-1">);</span><br/><br/><spanclass="hl-7">// Prints:</span><br/><spanclass="hl-7">// [</span><br/><spanclass="hl-7">// [Function: firstListener],</span><br/><spanclass="hl-7">// [Function: secondListener],</span><br/><spanclass="hl-7">// [Function: thirdListener]</span><br/><spanclass="hl-7">// ]</span><br/><spanclass="hl-7">// Helloooo! first listener</span><br/><spanclass="hl-7">// event with parameters 1, 2 in second listener</span><br/><spanclass="hl-7">// event with parameters 1, 2, 3, 4, 5 in third listener</span>
</code><button>Copy</button></pre>
<h3>Since</h3><p>v0.1.26</p>
@ -216,7 +216,7 @@ to each.</p>
<liclass="tsd-description">
<divclass="tsd-comment tsd-typography"><p>Returns an array listing the events for which the emitter has registered
listeners. The values in the array are strings or <code>Symbol</code>s.</p>
@ -364,12 +364,12 @@ is found in the list of the listeners of the event.</p>
event named <code>eventName</code>. No checks are made to see if the <code>listener</code> has
already been added. Multiple calls passing the same combination of <code>eventName</code>and <code>listener</code> will result in the <code>listener</code> being added, and called, multiple
<p>Returns a reference to the <code>EventEmitter</code>, so that calls can be chained.</p>
<p>By default, event listeners are invoked in the order they are added. The<code>emitter.prependListener()</code> method can be used as an alternative to add the
event listener to the beginning of the listeners array.</p>
@ -407,12 +407,12 @@ event listener to the beginning of the listeners array.</p>
<liclass="tsd-description">
<divclass="tsd-comment tsd-typography"><p>Adds a <strong>one-time</strong><code>listener</code> function for the event named <code>eventName</code>. The
next time <code>eventName</code> is triggered, this listener is removed and then invoked.</p>
<pre><codeclass="language-js"><spanclass="hl-1">server</span><spanclass="hl-0">.</span><spanclass="hl-5">once</span><spanclass="hl-0">(</span><spanclass="hl-6">'connection'</span><spanclass="hl-0">, (</span><spanclass="hl-1">stream</span><spanclass="hl-0">) </span><spanclass="hl-3">=></span><spanclass="hl-0"> {</span><br/><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-6">'Ah, we have our first user!'</span><spanclass="hl-0">);</span><br/><spanclass="hl-0">});</span>
<pre><codeclass="language-js"><spanclass="hl-0">server</span><spanclass="hl-1">.</span><spanclass="hl-5">once</span><spanclass="hl-1">(</span><spanclass="hl-6">'connection'</span><spanclass="hl-1">, (</span><spanclass="hl-0">stream</span><spanclass="hl-1">) </span><spanclass="hl-3">=></span><spanclass="hl-1"> {</span><br/><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-6">'Ah, we have our first user!'</span><spanclass="hl-1">);</span><br/><spanclass="hl-1">});</span>
</code><button>Copy</button></pre>
<p>Returns a reference to the <code>EventEmitter</code>, so that calls can be chained.</p>
<p>By default, event listeners are invoked in the order they are added. The<code>emitter.prependOnceListener()</code> method can be used as an alternative to add the
event listener to the beginning of the listeners array.</p>
@ -452,7 +452,7 @@ event listener to the beginning of the listeners array.</p>
event named <code>eventName</code>. No checks are made to see if the <code>listener</code> has
already been added. Multiple calls passing the same combination of <code>eventName</code>and <code>listener</code> will result in the <code>listener</code> being added, and called, multiple
<p>Returns a reference to the <code>EventEmitter</code>, so that calls can be chained.</p>
@ -491,7 +491,7 @@ times.</p>
<liclass="tsd-description">
<divclass="tsd-comment tsd-typography"><p>Adds a <strong>one-time</strong><code>listener</code> function for the event named <code>eventName</code> to the <em>beginning</em> of the listeners array. The next time <code>eventName</code> is triggered, this
listener is removed, and then invoked.</p>
<pre><codeclass="language-js"><spanclass="hl-1">server</span><spanclass="hl-0">.</span><spanclass="hl-5">prependOnceListener</span><spanclass="hl-0">(</span><spanclass="hl-6">'connection'</span><spanclass="hl-0">, (</span><spanclass="hl-1">stream</span><spanclass="hl-0">) </span><spanclass="hl-3">=></span><spanclass="hl-0"> {</span><br/><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-6">'Ah, we have our first user!'</span><spanclass="hl-0">);</span><br/><spanclass="hl-0">});</span>
<pre><codeclass="language-js"><spanclass="hl-0">server</span><spanclass="hl-1">.</span><spanclass="hl-5">prependOnceListener</span><spanclass="hl-1">(</span><spanclass="hl-6">'connection'</span><spanclass="hl-1">, (</span><spanclass="hl-0">stream</span><spanclass="hl-1">) </span><spanclass="hl-3">=></span><spanclass="hl-1"> {</span><br/><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-6">'Ah, we have our first user!'</span><spanclass="hl-1">);</span><br/><spanclass="hl-1">});</span>
</code><button>Copy</button></pre>
<p>Returns a reference to the <code>EventEmitter</code>, so that calls can be chained.</p>
@ -530,7 +530,7 @@ listener is removed, and then invoked.</p>
<liclass="tsd-description">
<divclass="tsd-comment tsd-typography"><p>Returns a copy of the array of listeners for the event named <code>eventName</code>,
including any wrappers (such as those created by <code>.once()</code>).</p>
<pre><codeclass="language-js"><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">emitter</span><spanclass="hl-0"> = </span><spanclass="hl-3">new</span><spanclass="hl-0"></span><spanclass="hl-5">EventEmitter</span><spanclass="hl-0">();</span><br/><spanclass="hl-1">emitter</span><spanclass="hl-0">.</span><spanclass="hl-5">once</span><spanclass="hl-0">(</span><spanclass="hl-6">'log'</span><spanclass="hl-0">, () </span><spanclass="hl-3">=></span><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-6">'log once'</span><spanclass="hl-0">));</span><br/><br/><spanclass="hl-7">// Returns a new Array with a function `onceWrapper` which has a property</span><br/><spanclass="hl-7">// `listener` which contains the original listener bound above</span><br/><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">listeners</span><spanclass="hl-0"> = </span><spanclass="hl-1">emitter</span><spanclass="hl-0">.</span><spanclass="hl-5">rawListeners</span><spanclass="hl-0">(</span><spanclass="hl-6">'log'</span><spanclass="hl-0">);</span><br/><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">logFnWrapper</span><spanclass="hl-0"> = </span><spanclass="hl-1">listeners</span><spanclass="hl-0">[</span><spanclass="hl-2">0</span><spanclass="hl-0">];</span><br/><br/><spanclass="hl-7">// Logs "log once" to the console and does not unbind the `once` event</span><br/><spanclass="hl-1">logFnWrapper</span><spanclass="hl-0">.</span><spanclass="hl-5">listener</span><spanclass="hl-0">();</span><br/><br/><spanclass="hl-7">// Logs "log once" to the console and removes the listener</span><br/><spanclass="hl-5">logFnWrapper</span><spanclass="hl-0">();</span><br/><br/><spanclass="hl-1">emitter</span><spanclass="hl-0">.</span><spanclass="hl-5">on</span><spanclass="hl-0">(</span><spanclass="hl-6">'log'</span><spanclass="hl-0">, () </span><spanclass="hl-3">=></span><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-6">'log persistently'</span><spanclass="hl-0">));</span><br/><spanclass="hl-7">// Will return a new Array with a single function bound by `.on()` above</span><br/><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">newListeners</span><spanclass="hl-0"> = </span><spanclass="hl-1">emitter</span><spanclass="hl-0">.</span><spanclass="hl-5">rawListeners</span><spanclass="hl-0">(</span><spanclass="hl-6">'log'</span><spanclass="hl-0">);</span><br/><br/><spanclass="hl-7">// Logs "log persistently" twice</span><br/><spanclass="hl-1">newListeners</span><spanclass="hl-0">[</span><spanclass="hl-2">0</span><spanclass="hl-0">]();</span><br/><spanclass="hl-1">emitter</span><spanclass="hl-0">.</span><spanclass="hl-5">emit</span><spanclass="hl-0">(</span><spanclass="hl-6">'log'</span><spanclass="hl-0">);</span>
<pre><codeclass="language-js"><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">emitter</span><spanclass="hl-1"> = </span><spanclass="hl-3">new</span><spanclass="hl-1"></span><spanclass="hl-5">EventEmitter</span><spanclass="hl-1">();</span><br/><spanclass="hl-0">emitter</span><spanclass="hl-1">.</span><spanclass="hl-5">once</span><spanclass="hl-1">(</span><spanclass="hl-6">'log'</span><spanclass="hl-1">, () </span><spanclass="hl-3">=></span><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-6">'log once'</span><spanclass="hl-1">));</span><br/><br/><spanclass="hl-7">// Returns a new Array with a function `onceWrapper` which has a property</span><br/><spanclass="hl-7">// `listener` which contains the original listener bound above</span><br/><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">listeners</span><spanclass="hl-1"> = </span><spanclass="hl-0">emitter</span><spanclass="hl-1">.</span><spanclass="hl-5">rawListeners</span><spanclass="hl-1">(</span><spanclass="hl-6">'log'</span><spanclass="hl-1">);</span><br/><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">logFnWrapper</span><spanclass="hl-1"> = </span><spanclass="hl-0">listeners</span><spanclass="hl-1">[</span><spanclass="hl-2">0</span><spanclass="hl-1">];</span><br/><br/><spanclass="hl-7">// Logs "log once" to the console and does not unbind the `once` event</span><br/><spanclass="hl-0">logFnWrapper</span><spanclass="hl-1">.</span><spanclass="hl-5">listener</span><spanclass="hl-1">();</span><br/><br/><spanclass="hl-7">// Logs "log once" to the console and removes the listener</span><br/><spanclass="hl-5">logFnWrapper</span><spanclass="hl-1">();</span><br/><br/><spanclass="hl-0">emitter</span><spanclass="hl-1">.</span><spanclass="hl-5">on</span><spanclass="hl-1">(</span><spanclass="hl-6">'log'</span><spanclass="hl-1">, () </span><spanclass="hl-3">=></span><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-6">'log persistently'</span><spanclass="hl-1">));</span><br/><spanclass="hl-7">// Will return a new Array with a single function bound by `.on()` above</span><br/><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">newListeners</span><spanclass="hl-1"> = </span><spanclass="hl-0">emitter</span><spanclass="hl-1">.</span><spanclass="hl-5">rawListeners</span><spanclass="hl-1">(</span><spanclass="hl-6">'log'</span><spanclass="hl-1">);</span><br/><br/><spanclass="hl-7">// Logs "log persistently" twice</span><br/><spanclass="hl-0">newListeners</span><spanclass="hl-1">[</span><spanclass="hl-2">0</span><spanclass="hl-1">]();</span><br/><spanclass="hl-0">emitter</span><spanclass="hl-1">.</span><spanclass="hl-5">emit</span><spanclass="hl-1">(</span><spanclass="hl-6">'log'</span><spanclass="hl-1">);</span>
</code><button>Copy</button></pre>
<h3>Since</h3><p>v9.4.0</p>
@ -572,7 +572,7 @@ component or module (e.g. sockets or file streams).</p>
<divclass="tsd-comment tsd-typography"><p>Removes the specified <code>listener</code> from the listener array for the event named<code>eventName</code>.</p>
<p><code>removeListener()</code> will remove, at most, one instance of a listener from the
listener array. If any single listener has been added multiple times to the
@ -581,7 +581,7 @@ called multiple times to remove each instance.</p>
<p>Once an event is emitted, all listeners attached to it at the
time of emitting are called in order. This implies that any<code>removeListener()</code> or <code>removeAllListeners()</code> calls <em>after</em> emitting and <em>before</em> the last listener finishes execution
will not remove them from<code>emit()</code> in progress. Subsequent events behave as expected.</p>
<pre><codeclass="language-js"><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">myEmitter</span><spanclass="hl-0"> = </span><spanclass="hl-3">new</span><spanclass="hl-0"></span><spanclass="hl-5">MyEmitter</span><spanclass="hl-0">();</span><br/><br/><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-5">callbackA</span><spanclass="hl-0"> = () </span><spanclass="hl-3">=></span><spanclass="hl-0"> {</span><br/><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-6">'A'</span><spanclass="hl-0">);</span><br/><spanclass="hl-0"></span><spanclass="hl-1">myEmitter</span><spanclass="hl-0">.</span><spanclass="hl-5">removeListener</span><spanclass="hl-0">(</span><spanclass="hl-6">'event'</span><spanclass="hl-0">, </span><spanclass="hl-1">callbackB</span><spanclass="hl-0">);</span><br/><spanclass="hl-0">};</span><br/><br/><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-5">callbackB</span><spanclass="hl-0"> = () </span><spanclass="hl-3">=></span><spanclass="hl-0"> {</span><br/><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-6">'B'</span><spanclass="hl-0">);</span><br/><spanclass="hl-0">};</span><br/><br/><spanclass="hl-1">myEmitter</span><spanclass="hl-0">.</span><spanclass="hl-5">on</span><spanclass="hl-0">(</span><spanclass="hl-6">'event'</span><spanclass="hl-0">, </span><spanclass="hl-1">callbackA</span><spanclass="hl-0">);</span><br/><br/><spanclass="hl-1">myEmitter</span><spanclass="hl-0">.</span><spanclass="hl-5">on</span><spanclass="hl-0">(</span><spanclass="hl-6">'event'</span><spanclass="hl-0">, </span><spanclass="hl-1">callbackB</span><spanclass="hl-0">);</span><br/><br/><spanclass="hl-7">// callbackA removes listener callbackB but it will still be called.</span><br/><spanclass="hl-7">// Internal listener array at time of emit [callbackA, callbackB]</span><br/><spanclass="hl-1">myEmitter</span><spanclass="hl-0">.</span><spanclass="hl-5">emit</span><spanclass="hl-0">(</span><spanclass="hl-6">'event'</span><spanclass="hl-0">);</span><br/><spanclass="hl-7">// Prints:</span><br/><spanclass="hl-7">// A</span><br/><spanclass="hl-7">// B</span><br/><br/><spanclass="hl-7">// callbackB is now removed.</span><br/><spanclass="hl-7">// Internal listener array [callbackA]</span><br/><spanclass="hl-1">myEmitter</span><spanclass="hl-0">.</span><spanclass="hl-5">emit</span><spanclass="hl-0">(</span><spanclass="hl-6">'event'</span><spanclass="hl-0">);</span><br/><spanclass="hl-7">// Prints:</span><br/><spanclass="hl-7">// A</span>
<pre><codeclass="language-js"><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">myEmitter</span><spanclass="hl-1"> = </span><spanclass="hl-3">new</span><spanclass="hl-1"></span><spanclass="hl-5">MyEmitter</span><spanclass="hl-1">();</span><br/><br/><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-5">callbackA</span><spanclass="hl-1"> = () </span><spanclass="hl-3">=></span><spanclass="hl-1"> {</span><br/><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-6">'A'</span><spanclass="hl-1">);</span><br/><spanclass="hl-1"></span><spanclass="hl-0">myEmitter</span><spanclass="hl-1">.</span><spanclass="hl-5">removeListener</span><spanclass="hl-1">(</span><spanclass="hl-6">'event'</span><spanclass="hl-1">, </span><spanclass="hl-0">callbackB</span><spanclass="hl-1">);</span><br/><spanclass="hl-1">};</span><br/><br/><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-5">callbackB</span><spanclass="hl-1"> = () </span><spanclass="hl-3">=></span><spanclass="hl-1"> {</span><br/><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-6">'B'</span><spanclass="hl-1">);</span><br/><spanclass="hl-1">};</span><br/><br/><spanclass="hl-0">myEmitter</span><spanclass="hl-1">.</span><spanclass="hl-5">on</span><spanclass="hl-1">(</span><spanclass="hl-6">'event'</span><spanclass="hl-1">, </span><spanclass="hl-0">callbackA</span><spanclass="hl-1">);</span><br/><br/><spanclass="hl-0">myEmitter</span><spanclass="hl-1">.</span><spanclass="hl-5">on</span><spanclass="hl-1">(</span><spanclass="hl-6">'event'</span><spanclass="hl-1">, </span><spanclass="hl-0">callbackB</span><spanclass="hl-1">);</span><br/><br/><spanclass="hl-7">// callbackA removes listener callbackB but it will still be called.</span><br/><spanclass="hl-7">// Internal listener array at time of emit [callbackA, callbackB]</span><br/><spanclass="hl-0">myEmitter</span><spanclass="hl-1">.</span><spanclass="hl-5">emit</span><spanclass="hl-1">(</span><spanclass="hl-6">'event'</span><spanclass="hl-1">);</span><br/><spanclass="hl-7">// Prints:</span><br/><spanclass="hl-7">// A</span><br/><spanclass="hl-7">// B</span><br/><br/><spanclass="hl-7">// callbackB is now removed.</span><br/><spanclass="hl-7">// Internal listener array [callbackA]</span><br/><spanclass="hl-0">myEmitter</span><spanclass="hl-1">.</span><spanclass="hl-5">emit</span><spanclass="hl-1">(</span><spanclass="hl-6">'event'</span><spanclass="hl-1">);</span><br/><spanclass="hl-7">// Prints:</span><br/><spanclass="hl-7">// A</span>
</code><button>Copy</button></pre>
<p>Because listeners are managed using an internal array, calling this will
change the position indices of any listener registered <em>after</em> the listener
@ -591,7 +591,7 @@ the <code>emitter.listeners()</code> method will need to be recreated.</p>
<p>When a single function has been added as a handler multiple times for a single
event (as in the example below), <code>removeListener()</code> will remove the most
recently added instance. In the example the <code>once('ping')</code>listener is removed:</p>
<divclass="tsd-comment tsd-typography"><p>A class method that returns the number of listeners for the given <code>eventName</code>registered on the given <code>emitter</code>.</p>
<divclass="tsd-comment tsd-typography"><pre><codeclass="language-js"><spanclass="hl-3">const</span><spanclass="hl-0"> { </span><spanclass="hl-4">on</span><spanclass="hl-0">, </span><spanclass="hl-4">EventEmitter</span><spanclass="hl-0"> } = </span><spanclass="hl-5">require</span><spanclass="hl-0">(</span><spanclass="hl-6">'events'</span><spanclass="hl-0">);</span><br/><br/><spanclass="hl-0">(</span><spanclass="hl-3">async</span><spanclass="hl-0"> () </span><spanclass="hl-3">=></span><spanclass="hl-0"> {</span><br/><spanclass="hl-0"></span><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">ee</span><spanclass="hl-0"> = </span><spanclass="hl-3">new</span><spanclass="hl-0"></span><spanclass="hl-5">EventEmitter</span><spanclass="hl-0">();</span><br/><br/><spanclass="hl-0"></span><spanclass="hl-7">// Emit later on</span><br/><spanclass="hl-0"></span><spanclass="hl-1">process</span><spanclass="hl-0">.</span><spanclass="hl-5">nextTick</span><spanclass="hl-0">(() </span><spanclass="hl-3">=></span><spanclass="hl-0"> {</span><br/><spanclass="hl-0"></span><spanclass="hl-1">ee</span><spanclass="hl-0">.</span><spanclass="hl-5">emit</span><spanclass="hl-0">(</span><spanclass="hl-6">'foo'</span><spanclass="hl-0">, </span><spanclass="hl-6">'bar'</span><spanclass="hl-0">);</span><br/><spanclass="hl-0"></span><spanclass="hl-1">ee</span><spanclass="hl-0">.</span><spanclass="hl-5">emit</span><spanclass="hl-0">(</span><spanclass="hl-6">'foo'</span><spanclass="hl-0">, </span><spanclass="hl-2">42</span><spanclass="hl-0">);</span><br/><spanclass="hl-0"> });</span><br/><br/><spanclass="hl-0"></span><spanclass="hl-8">for</span><spanclass="hl-0"></span><spanclass="hl-8">await</span><spanclass="hl-0"> (</span><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">event</span><spanclass="hl-0"></span><spanclass="hl-3">of</span><spanclass="hl-0"></span><spanclass="hl-5">on</span><spanclass="hl-0">(</span><spanclass="hl-1">ee</span><spanclass="hl-0">, </span><spanclass="hl-6">'foo'</span><spanclass="hl-0">)) {</span><br/><spanclass="hl-0"></span><spanclass="hl-7">// The execution of this inner block is synchronous and it</span><br/><spanclass="hl-0"></span><spanclass="hl-7">// processes one event at a time (even with await). Do not use</span><br/><spanclass="hl-0"></span><spanclass="hl-7">// if concurrent execution is required.</span><br/><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-1">event</span><spanclass="hl-0">); </span><spanclass="hl-7">// prints ['bar'] [42]</span><br/><spanclass="hl-0"> }</span><br/><spanclass="hl-0"></span><spanclass="hl-7">// Unreachable here</span><br/><spanclass="hl-0">})();</span>
<divclass="tsd-comment tsd-typography"><pre><codeclass="language-js"><spanclass="hl-3">const</span><spanclass="hl-1"> { </span><spanclass="hl-4">on</span><spanclass="hl-1">, </span><spanclass="hl-4">EventEmitter</span><spanclass="hl-1"> } = </span><spanclass="hl-5">require</span><spanclass="hl-1">(</span><spanclass="hl-6">'events'</span><spanclass="hl-1">);</span><br/><br/><spanclass="hl-1">(</span><spanclass="hl-3">async</span><spanclass="hl-1"> () </span><spanclass="hl-3">=></span><spanclass="hl-1"> {</span><br/><spanclass="hl-1"></span><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">ee</span><spanclass="hl-1"> = </span><spanclass="hl-3">new</span><spanclass="hl-1"></span><spanclass="hl-5">EventEmitter</span><spanclass="hl-1">();</span><br/><br/><spanclass="hl-1"></span><spanclass="hl-7">// Emit later on</span><br/><spanclass="hl-1"></span><spanclass="hl-0">process</span><spanclass="hl-1">.</span><spanclass="hl-5">nextTick</span><spanclass="hl-1">(() </span><spanclass="hl-3">=></span><spanclass="hl-1"> {</span><br/><spanclass="hl-1"></span><spanclass="hl-0">ee</span><spanclass="hl-1">.</span><spanclass="hl-5">emit</span><spanclass="hl-1">(</span><spanclass="hl-6">'foo'</span><spanclass="hl-1">, </span><spanclass="hl-6">'bar'</span><spanclass="hl-1">);</span><br/><spanclass="hl-1"></span><spanclass="hl-0">ee</span><spanclass="hl-1">.</span><spanclass="hl-5">emit</span><spanclass="hl-1">(</span><spanclass="hl-6">'foo'</span><spanclass="hl-1">, </span><spanclass="hl-2">42</span><spanclass="hl-1">);</span><br/><spanclass="hl-1"> });</span><br/><br/><spanclass="hl-1"></span><spanclass="hl-8">for</span><spanclass="hl-1"></span><spanclass="hl-8">await</span><spanclass="hl-1"> (</span><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">event</span><spanclass="hl-1"></span><spanclass="hl-3">of</span><spanclass="hl-1"></span><spanclass="hl-5">on</span><spanclass="hl-1">(</span><spanclass="hl-0">ee</span><spanclass="hl-1">, </span><spanclass="hl-6">'foo'</span><spanclass="hl-1">)) {</span><br/><spanclass="hl-1"></span><spanclass="hl-7">// The execution of this inner block is synchronous and it</span><br/><spanclass="hl-1"></span><spanclass="hl-7">// processes one event at a time (even with await). Do not use</span><br/><spanclass="hl-1"></span><spanclass="hl-7">// if concurrent execution is required.</span><br/><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-0">event</span><spanclass="hl-1">); </span><spanclass="hl-7">// prints ['bar'] [42]</span><br/><spanclass="hl-1"> }</span><br/><spanclass="hl-1"></span><spanclass="hl-7">// Unreachable here</span><br/><spanclass="hl-1">})();</span>
</code><button>Copy</button></pre>
<p>Returns an <code>AsyncIterator</code> that iterates <code>eventName</code> events. It will throw
if the <code>EventEmitter</code> emits <code>'error'</code>. It removes all listeners when
exiting the loop. The <code>value</code> returned by each iteration is an array
composed of the emitted event arguments.</p>
<p>An <code>AbortSignal</code> can be used to cancel waiting on events:</p>
<pre><codeclass="language-js"><spanclass="hl-3">const</span><spanclass="hl-0"> { </span><spanclass="hl-4">on</span><spanclass="hl-0">, </span><spanclass="hl-4">EventEmitter</span><spanclass="hl-0"> } = </span><spanclass="hl-5">require</span><spanclass="hl-0">(</span><spanclass="hl-6">'events'</span><spanclass="hl-0">);</span><br/><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">ac</span><spanclass="hl-0"> = </span><spanclass="hl-3">new</span><spanclass="hl-0"></span><spanclass="hl-5">AbortController</span><spanclass="hl-0">();</span><br/><br/><spanclass="hl-0">(</span><spanclass="hl-3">async</span><spanclass="hl-0"> () </span><spanclass="hl-3">=></span><spanclass="hl-0"> {</span><br/><spanclass="hl-0"></span><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">ee</span><spanclass="hl-0"> = </span><spanclass="hl-3">new</span><spanclass="hl-0"></span><spanclass="hl-5">EventEmitter</span><spanclass="hl-0">();</span><br/><br/><spanclass="hl-0"></span><spanclass="hl-7">// Emit later on</span><br/><spanclass="hl-0"></span><spanclass="hl-1">process</span><spanclass="hl-0">.</span><spanclass="hl-5">nextTick</span><spanclass="hl-0">(() </span><spanclass="hl-3">=></span><spanclass="hl-0"> {</span><br/><spanclass="hl-0"></span><spanclass="hl-1">ee</span><spanclass="hl-0">.</span><spanclass="hl-5">emit</span><spanclass="hl-0">(</span><spanclass="hl-6">'foo'</span><spanclass="hl-0">, </span><spanclass="hl-6">'bar'</span><spanclass="hl-0">);</span><br/><spanclass="hl-0"></span><spanclass="hl-1">ee</span><spanclass="hl-0">.</span><spanclass="hl-5">emit</span><spanclass="hl-0">(</span><spanclass="hl-6">'foo'</span><spanclass="hl-0">, </span><spanclass="hl-2">42</span><spanclass="hl-0">);</span><br/><spanclass="hl-0"> });</span><br/><br/><spanclass="hl-0"></span><spanclass="hl-8">for</span><spanclass="hl-0"></span><spanclass="hl-8">await</span><spanclass="hl-0"> (</span><spanclass="hl-3">const</span><spanclass="hl-0"></span><spanclass="hl-4">event</span><spanclass="hl-0"></span><spanclass="hl-3">of</span><spanclass="hl-0"></span><spanclass="hl-5">on</span><spanclass="hl-0">(</span><spanclass="hl-1">ee</span><spanclass="hl-0">, </span><spanclass="hl-6">'foo'</span><spanclass="hl-0">, { </span><spanclass="hl-1">signal:</span><spanclass="hl-0"></span><spanclass="hl-1">ac</span><spanclass="hl-0">.</span><spanclass="hl-1">signal</span><spanclass="hl-0"> })) {</span><br/><spanclass="hl-0"></span><spanclass="hl-7">// The execution of this inner block is synchronous and it</span><br/><spanclass="hl-0"></span><spanclass="hl-7">// processes one event at a time (even with await). Do not use</span><br/><spanclass="hl-0"></span><spanclass="hl-7">// if concurrent execution is required.</span><br/><spanclass="hl-0"></span><spanclass="hl-1">console</span><spanclass="hl-0">.</span><spanclass="hl-5">log</span><spanclass="hl-0">(</span><spanclass="hl-1">event</span><spanclass="hl-0">); </span><spanclass="hl-7">// prints ['bar'] [42]</span><br/><spanclass="hl-0"> }</span><br/><spanclass="hl-0"></span><spanclass="hl-7">// Unreachable here</span><br/><spanclass="hl-0">})();</span><br/><br/><spanclass="hl-1">process</span><spanclass="hl-0">.</span><spanclass="hl-5">nextTick</span><spanclass="hl-0">(() </span><spanclass="hl-3">=></span><spanclass="hl-0"></span><spanclass="hl-1">ac</span><spanclass="hl-0">.</span><spanclass="hl-5">abort</span><spanclass="hl-0">());</span>
<pre><codeclass="language-js"><spanclass="hl-3">const</span><spanclass="hl-1"> { </span><spanclass="hl-4">on</span><spanclass="hl-1">, </span><spanclass="hl-4">EventEmitter</span><spanclass="hl-1"> } = </span><spanclass="hl-5">require</span><spanclass="hl-1">(</span><spanclass="hl-6">'events'</span><spanclass="hl-1">);</span><br/><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">ac</span><spanclass="hl-1"> = </span><spanclass="hl-3">new</span><spanclass="hl-1"></span><spanclass="hl-5">AbortController</span><spanclass="hl-1">();</span><br/><br/><spanclass="hl-1">(</span><spanclass="hl-3">async</span><spanclass="hl-1"> () </span><spanclass="hl-3">=></span><spanclass="hl-1"> {</span><br/><spanclass="hl-1"></span><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">ee</span><spanclass="hl-1"> = </span><spanclass="hl-3">new</span><spanclass="hl-1"></span><spanclass="hl-5">EventEmitter</span><spanclass="hl-1">();</span><br/><br/><spanclass="hl-1"></span><spanclass="hl-7">// Emit later on</span><br/><spanclass="hl-1"></span><spanclass="hl-0">process</span><spanclass="hl-1">.</span><spanclass="hl-5">nextTick</span><spanclass="hl-1">(() </span><spanclass="hl-3">=></span><spanclass="hl-1"> {</span><br/><spanclass="hl-1"></span><spanclass="hl-0">ee</span><spanclass="hl-1">.</span><spanclass="hl-5">emit</span><spanclass="hl-1">(</span><spanclass="hl-6">'foo'</span><spanclass="hl-1">, </span><spanclass="hl-6">'bar'</span><spanclass="hl-1">);</span><br/><spanclass="hl-1"></span><spanclass="hl-0">ee</span><spanclass="hl-1">.</span><spanclass="hl-5">emit</span><spanclass="hl-1">(</span><spanclass="hl-6">'foo'</span><spanclass="hl-1">, </span><spanclass="hl-2">42</span><spanclass="hl-1">);</span><br/><spanclass="hl-1"> });</span><br/><br/><spanclass="hl-1"></span><spanclass="hl-8">for</span><spanclass="hl-1"></span><spanclass="hl-8">await</span><spanclass="hl-1"> (</span><spanclass="hl-3">const</span><spanclass="hl-1"></span><spanclass="hl-4">event</span><spanclass="hl-1"></span><spanclass="hl-3">of</span><spanclass="hl-1"></span><spanclass="hl-5">on</span><spanclass="hl-1">(</span><spanclass="hl-0">ee</span><spanclass="hl-1">, </span><spanclass="hl-6">'foo'</span><spanclass="hl-1">, { </span><spanclass="hl-0">signal:</span><spanclass="hl-1"></span><spanclass="hl-0">ac</span><spanclass="hl-1">.</span><spanclass="hl-0">signal</span><spanclass="hl-1"> })) {</span><br/><spanclass="hl-1"></span><spanclass="hl-7">// The execution of this inner block is synchronous and it</span><br/><spanclass="hl-1"></span><spanclass="hl-7">// processes one event at a time (even with await). Do not use</span><br/><spanclass="hl-1"></span><spanclass="hl-7">// if concurrent execution is required.</span><br/><spanclass="hl-1"></span><spanclass="hl-0">console</span><spanclass="hl-1">.</span><spanclass="hl-5">log</span><spanclass="hl-1">(</span><spanclass="hl-0">event</span><spanclass="hl-1">); </span><spanclass="hl-7">// prints ['bar'] [42]</span><br/><spanclass="hl-1"> }</span><br/><spanclass="hl-1"></span><spanclass="hl-7">// Unreachable here</span><br/><spanclass="hl-1">})();</span><br/><br/><spanclass="hl-0">process</span><spanclass="hl-1">.</span><spanclass="hl-5">nextTick</span><spanclass="hl-1">(() </span><spanclass="hl-3">=></span><spanclass="hl-1"></span><spanclass="hl-0">ac</span><spanclass="hl-1">.</span><spanclass="hl-5">abort</span><spanclass="hl-1">());</span>
</code><button>Copy</button></pre>
<h3>Since</h3><p>v13.6.0, v12.16.0</p>
@ -760,15 +760,15 @@ The <code>Promise</code> will resolve with an array of all the arguments emitted
given event.</p>
<p>This method is intentionally generic and works with the web platform <ahref="https://dom.spec.whatwg.org/#interface-eventtarget">EventTarget</a> interface, which has no special<code>'error'</code> event
semantics and does not listen to the <code>'error'</code> event.</p>
<p>The special handling of the <code>'error'</code> event is only used when <code>events.once()</code>is used to wait for another event. If <code>events.once()</code> is used to wait for the
'<code>error'</code> event itself, then it is treated as any other kind of event without