首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反应性扩展/ RxJS对node.js的实现

反应性扩展/ RxJS对node.js的实现
EN

Stack Overflow用户
提问于 2013-03-14 04:57:17
回答 3查看 1.8K关注 0票数 4

我只想实现

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

到我的节点项目。

当然,npm包是可用的,但我看到它更新得更少,模块更少,而且只使用min。文件,所以我想使用git源代码中的rxjs。

我下载了RxJS并将Dir下的整个文件复制到../myProject/lib/rx/

我明白了

这些文件中的rx.node.js

代码语言:javascript
复制
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代码如下

代码语言:javascript
复制
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)
})

这会产生如下错误,

代码语言:javascript
复制
.../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修改为

代码语言:javascript
复制
var Rx = require('./rx');
module.exports = Rx;

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

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-29 21:13:53

修正了最近的构建,我用此承诺删除了有问题的坏构建

国家预防机制已相应更新,以删除2.1.1,并替换为一个没有损坏的版本.

票数 4
EN

Stack Overflow用户

发布于 2013-03-28 14:06:37

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

代码语言:javascript
复制
npm remove rx
npm install rx@2.1.0

编辑:我看你在用师父。很抱歉给你造成了混乱。此解决方案可能适用于其他运行2.1.1的人。

票数 0
EN

Stack Overflow用户

发布于 2014-10-30 07:33:25

我觉得你能做到。如果此命令:

代码语言:javascript
复制
$ which npm
/usr/local/bin/npm

你可以这样做:

代码语言:javascript
复制
$ npm remove rx
$ npm install -g rx

如果您没有“哪个npm”,则必须使用本期(最佳答案)删除节点,然后使用brew (使用MacOS)或包管理器重新安装:

代码语言:javascript
复制
$ brew update
$ brew uninstall node
$ brew install node

你必须用这个:

代码语言:javascript
复制
$ brew postinstall node 

根据对本期的讨论。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15401506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档