[英]How do I get event name of Observable created with .fromEvent
I'm trying to restrict what events coming from common message bus should be emitted to server. 我试图限制来自公共消息总线的事件应发送到服务器。 Allowed events are on
outgoingEvents
array. 允许的事件在
outgoingEvents
数组上。 Problem is that to properly send them th server I need event name. 问题是要正确地向他们发送服务器,我需要事件名称。
var Events = new EventEmitter();
var outgoingEvents = [
'messageSubmit'
];
var outgoingMessages = Observable.fromArray(outgoingEvents)
.flatMap(function(eventName) {
return Observable.fromEvent(Events, eventName);
}).subscribe(function() {
// need event name here to properly encode message:
// var eventName = ... should be 'messageSubmit'
// var args = [].slice.call(arguments, 1);
// var encoded = JSON.stringify({ name: eventName, args: args });
// socket.send(encoded);
});
Events.emit('messageSubmit', { message: 'Submitted!' }, {flags: 'ABC'});
It is possible to reshape objects that get emmited to inservable in function that comes third parameter in .fromEvent
可以重塑.fromEvent中第三个参数附带的函数中被赋予可服务对象的
.fromEvent
return Observable.fromEvent(Events, eventName, function() {
var args = [].slice.call(arguments[0]);
return { name: eventName, args: args };
});
So it will be arguments of .subscribe
: 因此它将是
.subscribe
参数:
var eventName = event.name;
var args = event.args;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.