问题标签 [rxjs5]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
763 浏览

javascript - 在另一个项目中使用大理石测试 rxjs5 方法

我有一个使用 rxjs5 来实现通量的 webapp 项目,我目前正在寻找在其上编写单元测试的解决方案。

事实上,我已经在里面实现了自定义的 observables,例如:

我想使用大理石测试方式对其进行测试并编写类似的东西(我从 rxjs 存储库中获取了一个示例)

我的问题是:

是否可以在 rxjs5 项目之外使用大理石测试方法(使用诸如 等运算符hot... )。cold我不知道如何在我的项目中使用这个好工具。

谢谢您的帮助。

0 投票
3 回答
75775 浏览

rxjs - 什么时候在 rxjs 中使用 asObservable()?

我想知道有什么用asObservable

根据文档:

隐藏源序列身份的可观察序列。

但是为什么你需要隐藏序列呢?

0 投票
1 回答
2330 浏览

typescript - RxJs / Typescript 抛出“类型 {} 上不存在属性 clientX”

我正在尝试做一些非常简单的事情,只需在鼠标悬停时记录 event.clientX,这是模块代码:

然后我稍后订阅它,就像这样:

正在发生的事情是打字稿编译器不断抛出这种特殊类型的错误:

我猜是因为它仍然是一个空的 Rx 主题,并且 clientX 还不在那里,因为它需要通过鼠标悬停进行初始化。这有点愚蠢,因为如果我删除.clientX并保留eventx,它会毫无问题地注销。

如何解决这种不兼容性并解决此错误?

编辑:

不好意思,刚刚发现解决办法是放类型声明

像这样。

0 投票
1 回答
1212 浏览

angular - 如何使用 angular2 和 angular rxjs 观察鼠标移动

我有以下内容:

angular2 (NameCmp)

.html

但是,虽然console.log('after view init')打印到控制台,但console.log('logging mousemove'));语句不会。

谢谢

0 投票
2 回答
1689 浏览

angular - 使用 beta6 编译错误

使用 rxjs beta2 我的项目效果很好,但更新到 beta6 我得到一长串编译错误:

我正在像这样导入 Observables:

我究竟做错了什么?

非常感谢

使用 rc1 rxjs beta6 进行编辑。但是我不得不将结果投射到我所有的可观察对象上。在我可以使用之前:

但现在我必须使用:

如您所见,我必须转换结果,否则会出现编译错误 (res:Sources [])

这是正常的吗?

0 投票
1 回答
543 浏览

rxjs5 - 实现shareValue/shareBehavior

我有一个基于某些事件的 Observable,并且在某些时候会进行一些昂贵的计算。我想在多个不同的地方渲染那个 Observable 的结果。如果我天真地在两个地方订阅了这个 Observable,我最终会做两次昂贵的计算。这是一个代码片段,可以将我的观点带回家:

输出是:

我只想在地图中执行一次昂贵的计算。share实现了这一点,但它使得迟到的订阅者无法获得要呈现的当前值。在以前的 RxJS 版本中,shareValue允许迟到的订阅者获取当前值。但是,它似乎shareBehavior在 RxJS 5 中被重命名为,然后被完全删除:

https://github.com/ReactiveX/rxjs/pull/588

https://github.com/ReactiveX/rxjs/pull/712

这个问题上进行了长时间的讨论,决定他们将“删除 shareBehavior 和 shareReplay 以防止用户混淆”。我不明白混淆的可能性是什么(所以也许这意味着我是这个决定拯救的用户之一?)。

publishBehavior看起来也很有希望,但我并不完全理解publish,而且它似乎增加了比我需要或想要的更多的复杂性。

无论如何,我想知道在 RxJS 5 中是否有推荐的方法来实现这一点。迁移文档没有提供任何建议。

0 投票
1 回答
2540 浏览

rxjs - RxJs 替代 if then else 语句

在 RxJs 中编写以下代码的最佳方法是什么。假设 getSomethingFromDb() 返回一个 observable。注意:我不想在我的 RXJS 代码中使用 IF

编辑:我会让我的问题更有趣。如果我的代码像这样更复杂,如何在不使用 RxJS 中的 if 语句的情况下实现这一点。(更明确地)

0 投票
2 回答
1346 浏览

asynchronous - 如何使用异步管道从 Angular2 组件的视图中使用单个 Observable 属性?

如果我有一个具有以下属性的组件:

例如,我想在我看来使用异步管道来订阅它并将属性用作文本,你怎么能真正订阅它?例如:

我是 Angular2 的新手,不确定我是否做错了什么。

0 投票
1 回答
557 浏览

rxjs5 - rxjs5 在订阅时获取最后发出的值

使用 rxjs 5,我想订阅一个 observable 并以最后一个发出的值开始流。运营商 '.cache' 应该为此而建(我认为),但我无法让它工作。我做了一个小测试,触发一个 observable(通过单击一个按钮),然后在 3 秒后订阅它。理论上,我应该在订阅时获得点击量,但我没有。

https://github.com/ReactiveX/RxJS/commit/4308a04

http://codepen.io/BradLee/pen/VaqreL

0 投票
2 回答
4614 浏览

javascript - Angular2 - 对从可观察对象发送的对象中的属性值求和

在我的service.component.j中,我从 http 调用返回一个可观察的 Student 数组。学生对象有一个叫做年龄的属性,

学生.ts

service.componnet.js

在作为上述观察者的观察者的studentManagement.component.ts中,我想总结学生的年龄。我知道我可以将 sum() 放在源中(这不是首选,因为我还需要在页面中显示学生的其他信息,例如 ID、姓名、个人年龄。)或从 _studentList 计算它。除了这两个,还有什么办法吗?