Reactive-Extensions / RxJS实现到node.js

我只是想实现

https://github.com/Reactive-Extensions/RxJS

到我的节点项目。

当然,有npm包可用,但我看到它更less,更less的模块,只使用最小。 文件,所以我想使用git来源的rxjs。

我下载了RxJS-master并将Dir下的所有文件复制到../myProject/lib/rx/

我懂了

这些文件之间的rx.node.js

var Rx = require('./rx'); require('./rx.aggregates'); require('./rx.binding'); require('./rx.coincidence'); require('./rx.experimental'); require('./rx.joinpatterns'); require('./rx.testing'); require('./rx.time'); module.exports = Rx; 

所以, 我的app.js代码是这样的

 var rx = require("./lib/rx/rx.node.js") function test() { var as = new rx.AsyncSubject() setTimeout(function () { as.onNext("works!") as.onCompleted() }, 500) return as } var a = test().subscribe(function (result) { console.log("Got result: " + result) }) 

这给出了一个错误如下,

 .../rx/lib/rx/rx.binding.js:173 var BehaviorSubject = Rx.BehaviorSubject = (function (_super) { ^ ReferenceError: Rx is not defined at .../rx/lib/rx/rx.binding.js:173:27 at Observable (.../rx/lib/rx/rx.binding.js:14:26) at Object.<anonymous> (.../rx/lib/rx/rx.binding.js:18:2) at Module._compile (module.js:449:26) at Object.Module._extensions..js (module.js:467:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:362:17) at require (module.js:378:17) at Object.<anonymous> (.../rx/lib/rx/rx.node.js:3:1) Process finished with exit code 1 

哪里不对?


如果我修改rx.node.js

 var Rx = require('./rx'); module.exports = Rx; 

代码按预期工作,所以显然需要子模块部分不好。


谢谢。

修正了最新版本,我删除了这个提交的问题

NPM已经相应更新以删除2.1.1,并用非破坏版本replace。

这看起来像你正在运行的构build问题,我假设是2.1.1。 我有同样的问题,下面的npm命令为我解决了这个问题。

 npm remove rx npm install rx@2.1.0 

编辑:我看到你正在使用主人。 对困惑感到抱歉。 此解决scheme可能适用于运行2.1.1的其他人。

我想你可以做到这一点。 如果这个命令:

 $ which npm /usr/local/bin/npm 

你可以这样做:

 $ npm remove rx $ npm install -g rx 

如果你没有什么“npm”,那么你必须删除这个问题的节点(最好的答案),并用brew(使用MacOS)或你的包pipe理器重新安装:

 $ brew update $ brew uninstall node $ brew install node 

它可以你必须使用这个:

 $ brew postinstall node 

根据这个问题的讨论。