如何将 'process.on' 更改为基于 RxJS 样式的事件?
How can I change 'process.on' into RxJS style based events?
如何使用 Rx 监听 NodeJS 事件?
我的 JakeJS 文件中有以下代码。
process.on("cmdStart", () => {
console.log("> " + command)
});
我想用 RxJS 风格来做,但我不确定什么是最好的方法。
我已经阅读了文档并尝试了他们在 github 中提供的一些示例,但我不太确定,它似乎不起作用,这是我尝试过的方法。
const eventEmitter: any = new EventEmitter();
const cmdStart = Rx.Observable.fromEvent(eventEmitter, "cmdStart");
const subscription = cmdStart.subscribe(function (command) {
console.log("> " + command)
});
eventEmitter.emit(command);
我遵循了 RxJS 文档的示例 (https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/fromevent.md)
var Rx = require('rx');
var EventEmitter = require('events').EventEmitter;
var eventEmitter = new EventEmitter();
var source = Rx.Observable.fromEvent(eventEmitter, "cmdStart");
source.subscribe(function (x) { console.log("> " + x) });
eventEmitter.emit('cmdStart', 'testdata');
它不起作用,因为您正在发出 command
,这可能是您的事件的主体而不是事件名称。 fromEvent
只会监听那个事件名称。
你应该做 eventEmitter.emit('cmdStart', command)
。
如何使用 Rx 监听 NodeJS 事件?
我的 JakeJS 文件中有以下代码。
process.on("cmdStart", () => {
console.log("> " + command)
});
我想用 RxJS 风格来做,但我不确定什么是最好的方法。
我已经阅读了文档并尝试了他们在 github 中提供的一些示例,但我不太确定,它似乎不起作用,这是我尝试过的方法。
const eventEmitter: any = new EventEmitter();
const cmdStart = Rx.Observable.fromEvent(eventEmitter, "cmdStart");
const subscription = cmdStart.subscribe(function (command) {
console.log("> " + command)
});
eventEmitter.emit(command);
我遵循了 RxJS 文档的示例 (https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/fromevent.md)
var Rx = require('rx');
var EventEmitter = require('events').EventEmitter;
var eventEmitter = new EventEmitter();
var source = Rx.Observable.fromEvent(eventEmitter, "cmdStart");
source.subscribe(function (x) { console.log("> " + x) });
eventEmitter.emit('cmdStart', 'testdata');
它不起作用,因为您正在发出 command
,这可能是您的事件的主体而不是事件名称。 fromEvent
只会监听那个事件名称。
你应该做 eventEmitter.emit('cmdStart', command)
。