问题标签 [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.
typescript - RxJs / Typescript 抛出“类型 {} 上不存在属性 clientX”
我正在尝试做一些非常简单的事情,只需在鼠标悬停时记录 event.clientX,这是模块代码:
然后我稍后订阅它,就像这样:
正在发生的事情是打字稿编译器不断抛出这种特殊类型的错误:
我猜是因为它仍然是一个空的 Rx 主题,并且 clientX 还不在那里,因为它需要通过鼠标悬停进行初始化。这有点愚蠢,因为如果我删除.clientX
并保留event
为x
,它会毫无问题地注销。
如何解决这种不兼容性并解决此错误?
编辑:
不好意思,刚刚发现解决办法是放类型声明
像这样。
angular - 如何使用 angular2 和 angular rxjs 观察鼠标移动
我有以下内容:
angular2 (NameCmp)
.html
但是,虽然console.log('after view init')
打印到控制台,但console.log('logging mousemove'));
语句不会。
谢谢
angular - 使用 beta6 编译错误
使用 rxjs beta2 我的项目效果很好,但更新到 beta6 我得到一长串编译错误:
我正在像这样导入 Observables:
我究竟做错了什么?
非常感谢
使用 rc1 rxjs beta6 进行编辑。但是我不得不将结果投射到我所有的可观察对象上。在我可以使用之前:
但现在我必须使用:
如您所见,我必须转换结果,否则会出现编译错误 (res:Sources [])
这是正常的吗?
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 中是否有推荐的方法来实现这一点。迁移文档没有提供任何建议。
rxjs - RxJs 替代 if then else 语句
在 RxJs 中编写以下代码的最佳方法是什么。假设 getSomethingFromDb() 返回一个 observable。注意:我不想在我的 RXJS 代码中使用 IF
编辑:我会让我的问题更有趣。如果我的代码像这样更复杂,如何在不使用 RxJS 中的 if 语句的情况下实现这一点。(更明确地)
asynchronous - 如何使用异步管道从 Angular2 组件的视图中使用单个 Observable 属性?
如果我有一个具有以下属性的组件:
例如,我想在我看来使用异步管道来订阅它并将属性用作文本,你怎么能真正订阅它?例如:
我是 Angular2 的新手,不确定我是否做错了什么。
rxjs5 - rxjs5 在订阅时获取最后发出的值
使用 rxjs 5,我想订阅一个 observable 并以最后一个发出的值开始流。运营商 '.cache' 应该为此而建(我认为),但我无法让它工作。我做了一个小测试,触发一个 observable(通过单击一个按钮),然后在 3 秒后订阅它。理论上,我应该在订阅时获得点击量,但我没有。
javascript - Angular2 - 对从可观察对象发送的对象中的属性值求和
在我的service.component.j中,我从 http 调用返回一个可观察的 Student 数组。学生对象有一个叫做年龄的属性,
学生.ts
service.componnet.js
在作为上述观察者的观察者的studentManagement.component.ts中,我想总结学生的年龄。我知道我可以将 sum() 放在源中(这不是首选,因为我还需要在页面中显示学生的其他信息,例如 ID、姓名、个人年龄。)或从 _studentList 计算它。除了这两个,还有什么办法吗?