js發布訂閱者模式

2021-09-24 03:26:46 字數 1261 閱讀 1220

發布/訂閱模式可以用乙個全域性的 event 物件來實現,訂閱者不需要了解訊息來自哪個發布者,發布者也不知道訊息會推送給哪些訂閱者,event 作為乙個類似「中介者」 的角色,把訂閱者和發布者聯絡起來。

* 統一訊息管理, 將訊息傳送給所有訂閱這個訊息型別的模組

* 採用 訂閱/發布(觀察者) 這種設計模組式開發

*/class msgcenter

/*** 事件發布

* @param topic

* @param resultobj

*/publish(topic: string, resultobj: any)

let subscribers = this.topicsubsmap.get(topic) || ;

subscribers.foreach((sub: object | any) => );

return true;

} /**

* 訂閱事件

* @param topic string | array

* @param func function(topic, event)

* @param uuid

* @returns

*/subscribe(topic: string | string, func: (topic: string, event: any) => any, uuid: number) );

return uuid;

}if (!this.topicsubsmap.has(topic))

this.topicsubsmap.get(topic).push();

return uuid;

} unsubscribe(token: any) }}

return false;

} reset()

}export default msgcenter();

// 訂閱者

class subscribecomponent extends react.component

initevent = () => );

} componentwillunmount()

}// 發布者

class publishcomponent extends react.component );

}}

js 發布 訂閱者模式

發布 訂閱模式 bw 2020 07 29 const event on function name,method,target else this.regsiter name push emit function name off function name,target 移除事件 this.re...

js 中發布與訂閱者模式

之前在unity做遊戲的時候,常常使用到,發布於訂閱者模式。目的是為了解耦。不然 太黏不易維護。他的本質就是做到,發布者唯一的 key 但是訂閱者多個 value 是乙個一對多的關係 let eventmap new map class observe key key值 param args key...

js觀察者模式發布 訂閱

實習期結束,最近回到學校開始學習node.js,node果然是強大。不過在涉及到檔案操作的時候,發現要大量使用非同步回掉操作。以前在寫頁面的時候,從沒這麼多非同步操作,只有在使用 setinterval 和 xmlhttprequest 時了解了一下非同步程式設計。這次在學習node的過程中,把非同...