как сделать в в своей new Function event .on
Здравствуйте.
есть свой объект var MainProcess = new Gtdocument(); как сделать так, что можно было потом принимать сообщения типа MainProcess.on('SELECT', function().... |
Signal, нужно добавить классу "Gtdocument" новый метод.
Gtdocument.prototype.on=function(){}; |
|
Цитата:
можно краткий код реализации? |
Signal,
Всё проще некуда. Ставишь тот емиттер по ссылке. Потом в коде: var ee = require('event-emitter'); ee(Gtdocument.prototype); Теперь на экземпляры Gtdocument можно подписываться. А они, в свою очередь, могут вызывать в своих методах this.emit(...) |
забыл отписаться в этой теме, ну вопрос-то был в теме javascripts а не в node.js ветке, нашел такое вот решение для сайтового javascript или я может что не понял про requrie нодовские
сам класс: class EventEmitter { constructor() { this.events = {}; } emit(eventName, data) { const event = this.events[eventName]; if( event ) { event.forEach(fn => { fn.call(null, data); }); } } subscribe(eventName, fn) { if(!this.events[eventName]) { this.events[eventName] = []; } this.events[eventName].push(fn); return () => { this.events[eventName] = this.events[eventName].filter(eventFn => fn !== eventFn); } } } назначение MY.emitter.subscribe('event:eventname', data => { blabla(data); }); и отправка из своего объекта в MY this.emitter.emit('event:eventname', {data}); |
Signal, https://javascript.ru/forum/project/...atcher-js.html
EventDispatcher(Gtdocument, true); var mainProcess = new Gtdocument(); mainProcess.addEventListener('select', function() { }); mainProcess.onselect = function() { }; mainProcess.dispatchEvent('select'); |
Часовой пояс GMT +3, время: 23:36. |