问题标签 [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 投票
1 回答
1746 浏览

javascript - 使用 RxJS 重置事件超时

我正在试验 RxJS(带有 JQuery 扩展),我正在尝试解决以下用例:

鉴于我有两个按钮(A 和 B),如果在给定的时间范围内单击某个“秘密组合”,我想打印一条消息。例如,“秘密组合”可以是在 5 秒内点击“ABBABA”。如果在 5 秒内未输入该组合,则应显示超时消息。这是我目前拥有的:

虽然这工作得很好,但这并不是我想要的。bufferWithTimeOrCount在新的时间范围内第一次按下按钮 A 时,我需要重置 。我正在寻找的是,一旦按下秘密组合(ABBABA),我就会想要“组合解锁!” 显示(我不想等待时间窗口过期)。

0 投票
2 回答
1577 浏览

reactive-programming - 从数组创建无限可重复的 Observable

假设我有一个数组

我知道我可以使用这个数组创建一个 observable

如何从中创建一个惰性无限重复的可观察对象(即:只要请求它们就重复这些项目)?

试过了

但这不会延迟执行,因此会锁定浏览器。

0 投票
1 回答
936 浏览

node.js - 通过 JavaScript 的响应式扩展使用 Mongoose Stream

我已经被说服使用 Reactive Extensions for JavaScript,所以我尝试将它与 Mongoose 一起使用,如下所示:

但什么也没有发生。我可能做错了什么?

0 投票
2 回答
751 浏览

javascript - 如何在仅在运行时知道 N 的情况下将 flatMap 运算符链接到可观察对象 N 次?

我遇到了一种情况,我基本上需要做类似下面的事情。

其中 N 仅在运行时已知。我怎样才能以“功能方式”实现它而不诉诸命令式for循环或一些可变变量?

0 投票
1 回答
200 浏览

javascript - RxJS 反应式编程

我想创建一个聊天,具有类似 facebook 的“xyz 正在输入”功能。

当用户停止输入时,我使用此代码段进行注册。

现在想象 e 是

我的流/订阅者是

这意味着对于每个 keydown 我注册用户和用户正在输入的对话。我的问题是,我如何才能仅限制具有相同 userId+conversationId 的“事件”?

0 投票
2 回答
6803 浏览

javascript - 如何限制flatMap的并发?

我正在尝试使用 RxJS 编写一个脚本来处理数百个日志文件,每个日志文件大约 1GB。脚本的骨架看起来像

该代码有效,但请注意所有日志文件的过滤步骤将同时开始。但是,从文件系统 IO 性能的角度来看,最好是一个接一个地处理一个文件(或者至少将并发限制为几个文件,而不是同时打开所有数百个文件)。在这方面,我如何以“功能反应方式”实现它?

我曾想过调度程序,但无法弄清楚它如何在这里提供帮助。

0 投票
1 回答
2167 浏览

javascript - RxJs 中 switchLatest 和 flatmapLastest 有什么区别

我很难看到 RxJs 中 switchLatest 和 flatmapLatest 之间的区别,区别在于一个嵌套的 observable 像在 scala 中一样扁平化,而另一个相当于在返回新的扁平化集合之前执行它?

我是不是错过了什么。

0 投票
2 回答
1293 浏览

javascript - RxJs 处理异常而不终止

我不确定我对此有多正确,因此,如果任何专家能够纠正我,我将不胜感激。我目前的理解是 observables 是惰性的,并且在订阅之前不会产生值。如果发生错误,observable 将不再发送任何值。在很多情况下,这不是我们想要的。

在下面的代码示例中,我得到了珀斯和伦敦的天气,如果发生错误,则返回一个指示发生错误的对象。这几乎意味着订阅者上的错误块不会被调用,但成功会被调用,我将不得不查看它是否失败并更改逻辑。这是最好的方法吗????

zip 运算符是否会等待所有 obs 生成一个值,而不管排序如何,并在生成 all 中的单个值时返回?

代码如下:

非常感谢任何建议和提示。

提前致谢。

布莱尔。

0 投票
1 回答
1451 浏览

c# - Reactive Extensions SelectMany and Concat

I understand that the behaviour of SelectMany is to effectively merge the results of each value produced into a single stream so the ordering in nondeterministic.

How do I do something similar to concatAll in RxJs in C#.

This is effectively what I want to do, Given a Range, Wait a bit for each then concat in the order that they started in. Obviously this is a toy example but the idea is there.

Blair

0 投票
1 回答
730 浏览

javascript - RxJS:异步变异树

我有一系列对象,我需要通过向每个对象添加一个属性来异步修改它们:

与此同步的等价物是:

但是,在我的情况下,我需要foo异步附加属性。我希望最终值是foo添加了属性的对象序列。

我想出了以下代码来解决这个问题。在此示例中,我只是为每个对象添加一个值为bar.

这是解决我的问题的最佳方法,还是 Rx 提供了一种更好的方法来按顺序异步改变对象?我正在寻找一个更清洁的解决方案,因为我有一个需要变异的深树,并且这段代码很快变得笨拙:

也许我一开始就不应该进行这种突变?