node.js - 如何将 'process.on' 更改为基于 RxJS 风格的事件?

标签 node.js typescript rxjs jake

如何使用 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');

关于node.js - 如何将 'process.on' 更改为基于 RxJS 风格的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32640996/

相关文章:

angular - 如何在 Angular 9 中将分页与 Observables 和 AsyncPipe 结合起来?

javascript - 如何将变量从服务器js文件传递到另一个文件

node.js - VS Code 自动 npm 构建失败并显示 "npm command not found"

node.js - 使用 NodeJS 运行 Liquibase

typescript - 此条件将始终返回 'false',因为类型 '0' 和 '2' 没有重叠

angular - 错误 TS1131 : Property or signature expected and error TS1005: ';' expected

javascript - ejs 表单重定向到 URL 的双份副本(express.js)

javascript - 在 TypeScript 中使用索引签名时如何将值类型与键匹配?

javascript - RxJS 组合可观察量

angular - 返回 bool 值而不是订阅 canActivate