现在我是个大男孩,我(大多数时候)知道如何应对生活在DOM中的那些动物的各种事件。
为了解决问题,我希望能够在适当时启动我自己的定制事件,我想我可以伪编码如下:
Panel
这个想法当然是在未来一段时间我可以实例化myObject,然后甚至可以用某些东西来监视它的行为
myObject = {
prop:{ soAndSo }
method : function(args){
//do some stuff that takes forever
"All done and ready, now tell the world"
}
}
问题是,我不知道从哪里开始关于“现在告诉全世界”的部分。
你们的朋友会指出我正确的方向吗?
答案 0 :(得分:1)
您需要创建一个虚假的eventEmitter。这是我在遵循Pluralsight的教程时所做的一个,名为React和Flux for Angular Developers: Tutorial
对于你的问题,你告诉世界'通过发出事件,这实际上是调用你拥有的所有活动监听器。
// make your own emitter:
function EventEmitter () {
// holds events buy type; ex:'ADD_TODO'
this._events = {};
}
EventEmitter.prototype.on = function(type, listener) {
// add events to listen for
this._events[type] = this._events[type] || [];
this._events[type].push(listener);
};
EventEmitter.prototype.emit = function(type) {
// emit event base on type
if (this._events[type]) {
this._event[type].forEach(function(listener) {
// call listeners for events:
listener();
});
}
};
EventEmitter.prototype.removeListener = function(type, listern) {
if (this._events[type]) {
this._events[type].splice(this._events[type].indexOf(listener), 1)
}
};