pub struct EventEmitter { /* private fields */ }
Implementations§
Source§impl EventEmitter
impl EventEmitter
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates an EventEmitter instance
§Examples
use std::sync::{Arc};
use EventEmitter::EventEmitter;
fn main() {
let emitter = EventEmitter::new();
let callback1 = Arc::new(|| println!("[event1 emitted]: The first callback of event1 has been called."));
let callback2 = Arc::new(|| println!("[event1 emitted]: The second callback of event1 has been called."));
let callback3 = Arc::new(|| println!("[event2 emitted]: The only one callbask of event2 has been called."));
// Add event listener
emitter.on("event1", callback1);
emitter.add_listener("event1", callback2); // The `add_listene` method is an alias method for the `on` method.
emitter.on("event2", callback3);
let ct1 = emitter.listener_count("event1");
let ct2 = emitter.listener_count("event2");
println!("Number of Listeners for event1 is: {ct1}, \nNumber of Listeners for event2 is: {ct2}");
emitter.emit("event1"); // Emit event1
emitter.emit("event2"); // Emit event1
}
Sourcepub fn set_max_listeners(&mut self, max_listeners: usize)
pub fn set_max_listeners(&mut self, max_listeners: usize)
设置最大监听器数量 Set the maximum number of listeners
Sourcepub fn get_max_listeners(&self) -> usize
pub fn get_max_listeners(&self) -> usize
获取最大监听器数量
Sourcepub fn add_listener(&self, event: &str, callback: Arc<dyn Fn() + Send + Sync>)
pub fn add_listener(&self, event: &str, callback: Arc<dyn Fn() + Send + Sync>)
添加事件监听器
是 on
方法的别名
Get the maximum number of listeners
alias method for the on
method.
Sourcepub fn on(&self, event: &str, callback: Arc<dyn Fn() + Send + Sync>)
pub fn on(&self, event: &str, callback: Arc<dyn Fn() + Send + Sync>)
添加事件监听器 Add event listener
Sourcepub fn remove_listener(
&self,
event: &str,
callback: &Arc<dyn Fn() + Send + Sync>,
)
pub fn remove_listener( &self, event: &str, callback: &Arc<dyn Fn() + Send + Sync>, )
移除事件监听器
是 off
方法的别名
Remove the event listener
alias method for the off
method.
pub fn off(&self, event: &str, callback: &Arc<dyn Fn() + Send + Sync>)
Sourcepub fn emit(&self, event: &str)
pub fn emit(&self, event: &str)
添加一次性事件监听器
使用该方法添加的监听器函数将在发布一次事件成功执行后移除。
Add a one-time event listener
Listener functions added by this method will be removed after publishing an event successfully.
触发事件
触发相当于“发布-订阅”模式中的“发布”,一但某个事件被触发,该事件对应得所有监听器函数都会被执行。监听器就相当于“订阅者”。
trigger event
Triggering is equivalent to “publish” in “publish-subscribe” mode. Once an event is triggered, all listeners corresponding to the event will be executed. Listeners are equivalent to “subscribers”.
Sourcepub fn remove_all_listeners(&self, event: &str)
pub fn remove_all_listeners(&self, event: &str)
移除所有事件的所有监听器 Remove all listeners for all events.
pub fn prepend_listener( &self, event: &str, callback: Arc<dyn Fn() + Send + Sync>, )
Sourcepub fn listeners(&self, event: &str) -> Vec<Arc<dyn Fn() + Send + Sync>>
pub fn listeners(&self, event: &str) -> Vec<Arc<dyn Fn() + Send + Sync>>
获取指定事件的监听器
Gets the listener for the specified event.
Sourcepub fn listener_count(&self, event: &str) -> usize
pub fn listener_count(&self, event: &str) -> usize
获取指定事件的监听器数量
Gets the number of listeners for the specified event.