You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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