【问题标题】:Reactive-Extensions / RxJS Implementatation to node.jsReactive-Extensions / RxJS 对 node.js 的实现
【发布时间】:2013-03-14 04:57:17
【问题描述】:

我只是想实现

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

到我的节点项目。

当然,有可用的 npm-package,但我发现它更新较少,模块较少,并且只使用了最少的。文件,所以我想使用来自 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;

代码按预期工作,所以显然 require - sub modules 部分进展不顺利。


谢谢。

【问题讨论】:

    标签: node.js reactive-extensions-js rxjs


    【解决方案1】:

    从最新版本开始修复,我使用 this commit 删除了有问题的错误版本

    NPM 已相应更新以删除 2.1.1 并替换为未损坏的版本。

    【讨论】:

    • 感谢 Mattew 的快速响应!
    【解决方案2】:

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

    npm remove rx
    npm install rx@2.1.0
    

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

    【讨论】:

      【解决方案3】:

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

      $ which npm
      /usr/local/bin/npm
      

      你可以这样做:

      $ npm remove rx
      $ npm install -g rx
      

      如果您对“哪个 npm”一无所知,则必须使用 this issue(最佳答案)删除节点并使用 brew(使用 MacOS)或您的包管理器重新安装:

      $ brew update
      $ brew uninstall node
      $ brew install node
      

      你必须使用这个:

      $ brew postinstall node 
      

      根据this issue的讨论。

      【讨论】:

        猜你喜欢
        • 2017-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-16
        相关资源
        最近更新 更多