问题标签 [rxjs]

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 投票
4 回答
20932 浏览

rxjs - 使用来自另一个可观察对象的值过滤可观察对象

我有两个可观察的:

  1. 表示复选框输入列表的可观察对象。
  2. 一个表示来自服务器的事件流的可观察对象。

我想使用第一个值过滤第二个 observable。

从服务器接收到的值包含一个tag属性,该属性对应于复选框列表中的值。由上述两者组合产生的 observable 只会产生来自服务器的值,该服务器的tag属性包含在选中的复选框中。

0 投票
1 回答
142 浏览

javascript - rx.js 通过结构测试对象相等性

我有一个发出 JS 对象的 observable,我想在我的测试中断言我所做的 observable 转换将产生正确的 JS 对象。问题是我不明白 rx.js 正在使用什么样的断言,因为应该失败的测试正在通过。

例如,我希望这个基于示例目录中的测试失败,但它没有。请注意,产生的值为{ prop: 42 },预期值为{ prop: 43 }

有谁知道是什么问题,我该如何解决?我了解 JavaScript 中的对象相等性,但这是下一步。从上面的测试中可以明显看出 rx.js 没有使用引用相等,也没有使用结构相等。

0 投票
1 回答
2125 浏览

jquery - 有人在使用 rx.jquery 吗?

尝试使用 RxJS,特别是使用 rx.jquery 让我的脚湿透。我在这里找到了一个小教程,并尝试按如下方式进行设置。它应该接受您输入的内容并提供从 Wikipedia 中提取的建议。对 Wikipedia 的调用成功(我在 Chrome 的网络调试窗口中看到),但应用程序给了我一个错误:

未捕获的类型错误:对象 #<Object> 没有方法“订阅”

我已经尝试了几个版本的 jQuery(1.8.3、1.10.2、2.0.3),这没什么区别。Bootstrap 似乎也不是问题。我在这里几乎没有看到 rx.jquery 的提及(并且没有标签),所以我不知道它是否可能还没有为黄金时段做好准备或什么。我已经提取了最新的 rx.* 库,因为较旧的库给了我不同的错误。

当然,我不能排除我只是搞砸了一些东西。但它并没有向我跳出来。

0 投票
1 回答
1325 浏览

javascript - GHCJS:如何使用 FFI 导入高阶 javascript 函数?

如何在 GHCJS 中导入如下 Javascript 函数?

我尝试了以下各种组合但没有成功:

感谢您提供任何帮助,并提供 GHCJS FFI 文档的链接。

谢谢

0 投票
1 回答
694 浏览

javascript - 使用 rxjs 检测多点触控长按事件

一直在玩 rxjs。我觉得它真的很好,但我确实花了一些时间来理解它。这是一个我无法解决的小问题,所以我正在寻找一些见解。

考虑一个多点触控界面,对于每个 touchstart/touchmove/touchend,您将拥有一个具有 {id:, x:x, y:y, t:t, current_pointers: } 的对象作为参数

我想要一个可观察的,它会在 1500 毫秒后为每个向下指针触发一个事件,除非该指针发生 touchmove 或 touchup。

对于单次触摸,它很简单,您只需 takeUntil touch move 或 touchup,但是当指针的 id 在链中的第一个可观察对象内时,您将如何使用 takeUntil 呢?

0 投票
1 回答
847 浏览

javascript - 反应式框架中的滑动窗口/缓冲区

我想创建一个可变长度的输入事件窗口/缓冲区,当它接收到其他事件时它会变长。

这是为了实现“键入时搜索”功能。我想捕获点击,但为了不给服务器带来压力,我想明智地进行服务调用。

我想到的逻辑是缓冲击键,从第一个键向下开始,直到一个键向上 + 1 秒延迟。因此,如果用户仍在打字(即以 < 1 秒的频率敲击键盘),我们将不会调用后台服务。但是,一旦他们停止输入 1 秒钟,就会进行呼叫。

0 投票
1 回答
1490 浏览

rxjs - Rx.Observable.returnValue 一段时间后如何返回值?

Rx.Observable.returnValue 将调度程序作为第二个参数。我想一段时间后返回值应该是这样的

但是第二个参数应该是公正Rx.Scheduler.timeout的,这对我来说没有意义,因为所有调度程序 currentThread、immediate 或 timeout 都会立即返回值。

所以我有两个问题:

  • 一段时间后如何返回值?
  • 为什么我们需要调度器参数returnValue
0 投票
2 回答
1103 浏览

rxjs - 使用 RxJS 进行业务事件的复杂事件处理

我有一个我们的 Web 应用程序产生的业务事件数据库。
我想编写 JavaScript 应用程序来处理这些事件(最多数百个),并使用复杂事件处理会在其中找到一些模式。

例如,如果我们在 15 分钟内有登录失败事件而没有登录事件,我们想知道它。我们使用会话 ID 关联事件。

我更喜欢使用现有的库,从我看到的RxJS似乎是正确的工具。
我的问题是如何使用原始事件的时间戳而不是当前计算机时间来构建事件流?

我看到 RxJS 有时间运算符,但看起来它正在使用当前时间。

更新 1
我发现了HistoricalScheduler类,它看起来像是一个很好的方向,但没有关于它的文档,我不确定它是否存在于 RxJS 中。

0 投票
1 回答
256 浏览

javascript - 我们可以在可观察流上使用高通滤波器来检测抖动事件吗?

具体来说,如果我们有一个表示设备上 x/y/z 加速度的事件流,rxjs 可以给我们,我们如何以流的方式实现这个算法高通滤波器,以便利用更长的样本滑动窗口震动检测?

Shake.js方法很有前途,但仅基于 2 个连续样本,并且 2 个样本不构成信号流。

我觉得一旦展示了如何在流式用户输入数据上使用我从音频/音乐工作中熟悉的信号处理概念,我利用这个框架的能力将真正起飞,在此先感谢。

0 投票
1 回答
910 浏览

typescript - TypeScript - 无法“新建”现有类型的接口

我正在尝试在我正在编写的 TypeScript 应用程序中使用 RxJs 定义。我导入了 defs,现在我正在尝试新的主题。

但是,当我尝试此操作时,出现以下错误。

错误 6 属性 'Subject' 不存在于类型 '{ Internals: { inherits(child: Function, parent: Function): Function; addProperties(obj: Object, ...source: Object[]): void; addRef(xs: Rx.IObservable, r: { getDisposable(): Rx._IDisposable; }): Rx.IObservable; }; 观察者: { create(onNext: (value: any) => void, onError?: (exception: any) => void, onCompleted?: () => void): Rx.IObserver; fromNotifier(handler: (notification: Rx.INotification) => void): Rx.IObserver; }; }

当我查看类型定义时,我可以看到 Subject 类已被定义为接口

有人可以告诉我如何创建这个 Subject 类的实例,因为我找不到办法。当前使用 TS 9.1.1。我认为(): ISubject可能会这样做,但似乎没有任何影响。

我知道一些建议是定义一个类,但是我需要从基接口实现所有方法,所以这将是巨大的,因为它继承自 IObservable。