importeventMangerfrom"yum-event-center";constreadyListenerA=eventManger.addEventListener("ready",(params)=>{console.log(`A: ${params}`);});constreadyListenerB=eventManger.addEventListener("ready",(params)=>{console.log(`B: ${params}`);});constreadyListenerC=eventManger.once("ready",(params)=>{console.log(`C: ${params}`);});eventManger.emit("ready","form emit");eventManger.emit("ready","form emit2");readyListenerA.remove();readyListenerB.remove();// C: form emit// B: form emit// A: form emit// B: form emit2// A: form emit2
可拦截式注册与调用,返回 true 则拦截,不再继续执行(倒序触发)
importeventMangerfrom"yum-event-center";constlistenerA=eventManger.addEventListener("ready",(params)=>{console.log(`A: ${params}`);});constlistenerB=eventManger.addEventListener("ready",(params)=>{console.log(`B: ${params}`);returntrue;});constlistenerC=eventManger.addEventListener("ready",(params)=>{console.log(`C: ${params}`);});eventManger.emit("ready","form waterfallEmit");readyListenerA.remove();readyListenerB.remove();readyListenerC.remove();// C: form waterfallEmit// B: form waterfallEmit
瀑布流注册与调用, 返回值会传递给下一个监听器
importeventMangerfrom"yum-event-center";constlistenerA=eventManger.addEventListener("ready",(params)=>{console.log(`A: ${params}`);});constlistenerB=eventManger.addEventListener("ready",(params,endFn)=>{console.log(`B: ${params}`);endFn();// block the listenerA});constlistenerC=eventManger.addEventListener("ready",(params,endFn)=>{console.log(`C: ${params}`);return"form listenerC";});eventManger.waterfallEmit("ready","form waterfallEmit");readyListenerA.remove();readyListenerB.remove();readyListenerC.remove();// C: form waterfallEmit// B: form listenerC