<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[塑胶模具设计资料分享 - 模极社模具行业技术社区]]></title><description><![CDATA[<p dir="auto">&lt;h2&gt;&lt;img src="media/header.png" width="1000"&gt;&lt;/h2&gt;</p>
<p dir="auto">&lt;blockquote&gt;<br />
&lt;p&gt;Simple and modern async event emitter&lt;/p&gt;<br />
&lt;/blockquote&gt;</p>
<p dir="auto">&lt;p&gt;&lt;a href="upload://l3MerXwiNXtFVM01rRej25jYS2l.svg"&gt;&lt;img src="<a href="https://codecov.io/gh/sindresorhus/emittery" rel="nofollow ugc">https://codecov.io/gh/sindresorhus/emittery</a>" alt="Coverage Status&lt;/a&gt;"&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;a href="upload://jSWoKtcWcqBDoFsFrtu2rCswD4o.svg"&gt;&lt;img src="<a href="https://bundlephobia.com/result?p=emittery" rel="nofollow ugc">https://bundlephobia.com/result?p=emittery</a>" alt="&lt;img src="media/header.png" width="1000"&gt;&lt;/a&gt;"&gt;&lt;/p&gt;</p>
<p dir="auto">&lt;p&gt;It works in Node.js and the browser (using a bundler).&lt;/p&gt;</p>
<p dir="auto">&lt;p&gt;Emitting events asynchronously is important for production code where you want the least amount of synchronous operations. Since JavaScript is single-threaded, no other code can run while doing synchronous operations. For Node.js, that means it will block other requests, defeating the strength of the platform, which is scalability through async. In the browser, a synchronous operation could potentially cause lags and block user interaction.&lt;/p&gt;</p>
<p dir="auto">&lt;h3&gt;Install&lt;/h3&gt;</p>
<p dir="auto">&lt;pre&gt;&lt;code&gt;<br />
$ npm install emittery<br />
&lt;/code&gt;&lt;/pre&gt;</p>
<p dir="auto">&lt;h3&gt;Usage&lt;/h3&gt;</p>
<p dir="auto">&lt;pre&gt;&lt;code&gt;<br />
const Emittery = require('emittery');</p>
<p dir="auto">const emitter = new Emittery();</p>
<p dir="auto">emitter.on('<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f984.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--unicorn_face" title=":unicorn_face:" alt="🦄" />', data =&gt; {<br />
console.log(data);<br />
});</p>
<p dir="auto">const myUnicorn = Symbol('<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f984.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--unicorn_face" title=":unicorn_face:" alt="🦄" />');</p>
<p dir="auto">emitter.on(myUnicorn, data =&gt; {<br />
console.log(<code>Unicorns love ${data}</code>);<br />
});</p>
<p dir="auto">emitter.emit('<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f984.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--unicorn_face" title=":unicorn_face:" alt="🦄" />', '<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f308.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--rainbow" title=":rainbow:" alt="🌈" />'); // Will trigger printing '<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f308.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--rainbow" title=":rainbow:" alt="🌈" />'<br />
emitter.emit(myUnicorn, '<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f98b.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--butterfly" title=":butterfly:" alt="🦋" />');  // Will trigger printing 'Unicorns love <img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f98b.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--butterfly" title=":butterfly:" alt="🦋" />'<br />
&lt;/code&gt;&lt;/pre&gt;</p>
<p dir="auto">&lt;h3&gt;API&lt;/h3&gt;</p>
<p dir="auto">&lt;h4&gt;eventName&lt;/h4&gt;</p>
<p dir="auto">&lt;p&gt;Emittery accepts strings and symbols as event names.&lt;/p&gt;</p>
<p dir="auto">&lt;p&gt;Symbol event names can be used to avoid name collisions when your classes are extended, especially for internal events.&lt;/p&gt;</p>
<p dir="auto">&lt;h4&gt;emitter = new Emittery()&lt;/h4&gt;</p>
<p dir="auto">&lt;p&gt;#### on(eventName | eventName[], listener)&lt;/p&gt;</p>
<p dir="auto">&lt;p&gt;Subscribe to one or more events.&lt;/p&gt;</p>
<p dir="auto">&lt;p&gt;Returns an unsubscribe method.&lt;/p&gt;</p>
<p dir="auto">&lt;p&gt;Using the same listener multiple times for the same event will result in only one method call per emitted event.&lt;/p&gt;</p>
<p dir="auto">&lt;pre&gt;&lt;code&gt;<br />
const Emittery = require('emittery');</p>
<p dir="auto">const emitter = new Emittery();</p>
<p dir="auto">emitter.on('<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f984.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--unicorn_face" title=":unicorn_face:" alt="🦄" />', data =&gt; {<br />
console.log(data);<br />
});<br />
emitter.on(['<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f984.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--unicorn_face" title=":unicorn_face:" alt="🦄" />', '<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f436.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--dog" title=":dog:" alt="🐶" />'], data =&gt; {<br />
console.log(data);<br />
});</p>
<p dir="auto">emitter.emit('<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f984.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--unicorn_face" title=":unicorn_face:" alt="🦄" />', '<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f308.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--rainbow" title=":rainbow:" alt="🌈" />'); // log =&gt; '<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f308.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--rainbow" title=":rainbow:" alt="🌈" />' x2<br />
emitter.emit('<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f436.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--dog" title=":dog:" alt="🐶" />', '<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f356.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--meat_on_bone" title=":meat_on_bone:" alt="🍖" />'); // log =&gt; '<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f356.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--meat_on_bone" title=":meat_on_bone:" alt="🍖" />'<br />
&lt;/code&gt;&lt;/pre&gt;</p>
<p dir="auto">&lt;p&gt;##### Custom subscribable events&lt;/p&gt;</p>
<p dir="auto">&lt;p&gt;Emittery exports some symbols which represent custom events that can be passed to &lt;code&gt;Emitter.on&lt;/code&gt; and similar methods.&lt;/p&gt;</p>
<p dir="auto">&lt;ul&gt;<br />
&lt;li&gt;&lt;code&gt;Emittery.listenerAdded&lt;/code&gt; - Fires when an event listener was added.&lt;/li&gt;<br />
&lt;li&gt;&lt;code&gt;Emittery.listenerRemoved&lt;/code&gt; - Fires when an event listener was removed.&lt;/li&gt;<br />
&lt;/ul&gt;</p>
<p dir="auto">&lt;pre&gt;&lt;code&gt;<br />
const Emittery = require('emittery');</p>
<p dir="auto">const emitter = new Emittery();</p>
<p dir="auto">emitter.on(Emittery.listenerAdded, ({listener, eventName}) =&gt; {<br />
console.log(listener);<br />
//=&gt; data =&gt; {}</p>
<pre><code>console.log(eventName);
//=&gt; '🦄'
</code></pre>
<p dir="auto">});</p>
<p dir="auto">emitter.on('<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f984.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--unicorn_face" title=":unicorn_face:" alt="🦄" />', data =&gt; {<br />
// Handle data<br />
});<br />
&lt;/code&gt;&lt;/pre&gt;</p>
<p dir="auto">&lt;p&gt;###### Listener data&lt;/p&gt;</p>
<p dir="auto">&lt;ul&gt;<br />
&lt;li&gt;&lt;code&gt;listener&lt;/code&gt; - The listener that was added.&lt;/li&gt;<br />
&lt;li&gt;&lt;code&gt;eventName&lt;/code&gt; - The name of the event that was added or removed if &lt;code&gt;.on()&lt;/code&gt; or &lt;code&gt;.off()&lt;/code&gt; was used, or &lt;code&gt;undefined&lt;/code&gt; if &lt;code&gt;.onAny()&lt;/code&gt; or &lt;code&gt;.offAny()&lt;/code&gt; was used.&lt;/li&gt;<br />
&lt;/ul&gt;</p>
<p dir="auto">&lt;p&gt;Only events that are not of this type are able to trigger these events.&lt;/p&gt;</p>
<p dir="auto">&lt;p&gt;##### listener(data)&lt;/p&gt;</p>
<p dir="auto">&lt;p&gt;#### off(eventName | eventName[], listener)&lt;/p&gt;</p>
<p dir="auto">&lt;p&gt;Remove one or more event subscriptions.&lt;/p&gt;</p>
<p dir="auto">&lt;pre&gt;&lt;code&gt;<br />
const Emittery = require('emittery');</p>
<p dir="auto">const emitter = new Emittery();</p>
<p dir="auto">const listener = data =&gt; console.log(data);<br />
(async () =&gt; {<br />
emitter.on(['<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f984.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--unicorn_face" title=":unicorn_face:" alt="🦄" />', '<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f436.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--dog" title=":dog:" alt="🐶" />', '<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f98a.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--fox_face" title=":fox_face:" alt="🦊" />'], listener);<br />
await emitter.emit('<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f984.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--unicorn_face" title=":unicorn_face:" alt="🦄" />', 'a');<br />
await emitter.emit('<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f436.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--dog" title=":dog:" alt="🐶" />', 'b');<br />
await emitter.emit('<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f98a.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--fox_face" title=":fox_face:" alt="🦊" />', 'c');<br />
emitter.off('<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f984.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--unicorn_face" title=":unicorn_face:" alt="🦄" />', listener);<br />
emitter.off(['<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f436.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--dog" title=":dog:" alt="🐶" />', '<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f98a.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--fox_face" title=":fox_face:" alt="🦊" />'], listener);<br />
await emitter.emit('<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f984.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--unicorn_face" title=":unicorn_face:" alt="🦄" />', 'a'); // Nothing happens<br />
await emitter.emit('<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f436.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--dog" title=":dog:" alt="🐶" />', 'b'); // Nothing happens<br />
await emitter.emit('<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f98a.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--fox_face" title=":fox_face:" alt="🦊" />', 'c'); // Nothing happens<br />
})();<br />
&lt;/code&gt;&lt;/pre&gt;</p>
<p dir="auto">&lt;p&gt;##### listener(data)&lt;/p&gt;</p>
<p dir="auto">&lt;p&gt;#### once(eventName | eventName[])&lt;/p&gt;</p>
<p dir="auto">&lt;p&gt;Sub&lt;/p&gt;</p>
<p dir="auto">&lt;hr&gt;<br />
&lt;p&gt;有没有同行遇到过同样的问题？分享一下经验。&lt;/p&gt;</p>
]]></description><link>https://forum.mj7.cn/topic/11660/塑胶模具设计资料分享-模极社模具行业技术社区</link><generator>RSS for Node</generator><lastBuildDate>Fri, 02 Oct 2026 09:34:15 GMT</lastBuildDate><atom:link href="https://forum.mj7.cn/topic/11660.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 19 Apr 2026 21:53:16 GMT</pubDate><ttl>60</ttl></channel></rss>