node.js的反应式扩展/RxJS实现
我只是想实现 到我的节点项目 当然,有npm包可用,但我看到它更新较少,模块较少,并且只使用min.文件,所以我想使用git源代码中的rxjs 我下载了RxJS master,并将目录下的所有文件复制到../myProject/lib/rx/ 我明白了 这些文件中的rx.node.jsnode.js的反应式扩展/RxJS实现,node.js,reactive-extensions-js,rxjs,Node.js,Reactive Extensions Js,Rxjs,我只是想实现 到我的节点项目 当然,有npm包可用,但我看到它更新较少,模块较少,并且只使用min.文件,所以我想使用git源代码中的rxjs 我下载了RxJS master,并将目录下的所有文件复制到../myProject/lib/rx/ 我明白了 这些文件中的rx.node.js var Rx = require('./rx'); require('./rx.aggregates'); require('./rx.binding'); require('./rx.coincidence'
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
代码按预期工作,所以显然require-sub-modules部分运行不正常
谢谢。您正在运行的构建似乎有问题,我假设是2.1.1。我也有同样的问题,下面的npm命令为我解决了这个问题
npm remove rx
npm install rx@2.1.0
编辑:我看到您正在使用master。很抱歉给你带来了困惑。此解决方案可能适用于运行2.1.1的其他解决方案 从最新版本开始修复,我用
NPM已相应更新,删除了2.1.1,并替换为未损坏的版本。我认为您可以做到这一点。如果使用此命令:
$ which npm
/usr/local/bin/npm
您可以这样做:
$ npm remove rx
$ npm install -g rx
如果您对“哪个npm”不了解,则必须使用(最佳答案)删除节点,并使用brew(使用MacOS)或软件包管理器重新安装:
$ brew update
$ brew uninstall node
$ brew install node
您必须使用以下功能:
$ brew postinstall node
根据上的讨论。感谢Mattew的快速回复!
$ brew postinstall node