node.js的反应式扩展/RxJS实现

node.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'

我只是想实现

到我的节点项目

当然,有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');
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