簡體   English   中英

如何獲取使用.fromEvent創建的Observable的事件名稱

[英]How do I get event name of Observable created with .fromEvent

我試圖限制來自公共消息總線的事件應發送到服務器。 允許的事件在outgoingEvents數組上。 問題是要正確地向他們發送服務器,我需要事件名稱。

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'});

可以重塑.fromEvent中第三個參數附帶的函數中被賦予可服務對象的.fromEvent

return Observable.fromEvent(Events, eventName, function() {
    var args = [].slice.call(arguments[0]);
    return { name: eventName, args: args };
});

因此它將是.subscribe參數:

var eventName = event.name;
var args = event.args;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM