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
根据这个问题的讨论。