问题标签 [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.
javascript - 使用 RxJS 重置事件超时
我正在试验 RxJS(带有 JQuery 扩展),我正在尝试解决以下用例:
鉴于我有两个按钮(A 和 B),如果在给定的时间范围内单击某个“秘密组合”,我想打印一条消息。例如,“秘密组合”可以是在 5 秒内点击“ABBABA”。如果在 5 秒内未输入该组合,则应显示超时消息。这是我目前拥有的:
虽然这工作得很好,但这并不是我想要的。bufferWithTimeOrCount
在新的时间范围内第一次按下按钮 A 时,我需要重置 。我正在寻找的是,一旦按下秘密组合(ABBABA),我就会想要“组合解锁!” 显示(我不想等待时间窗口过期)。
reactive-programming - 从数组创建无限可重复的 Observable
假设我有一个数组项
我知道我可以使用这个数组创建一个 observable
如何从中创建一个惰性无限重复的可观察对象(即:只要请求它们就重复这些项目)?
试过了
但这不会延迟执行,因此会锁定浏览器。
node.js - 通过 JavaScript 的响应式扩展使用 Mongoose Stream
我已经被说服使用 Reactive Extensions for JavaScript,所以我尝试将它与 Mongoose 一起使用,如下所示:
但什么也没有发生。我可能做错了什么?
javascript - 如何在仅在运行时知道 N 的情况下将 flatMap 运算符链接到可观察对象 N 次?
我遇到了一种情况,我基本上需要做类似下面的事情。
其中 N 仅在运行时已知。我怎样才能以“功能方式”实现它而不诉诸命令式for循环或一些可变变量?
javascript - RxJS 反应式编程
我想创建一个聊天,具有类似 facebook 的“xyz 正在输入”功能。
当用户停止输入时,我使用此代码段进行注册。
现在想象 e 是
我的流/订阅者是
这意味着对于每个 keydown 我注册用户和用户正在输入的对话。我的问题是,我如何才能仅限制具有相同 userId+conversationId 的“事件”?
javascript - 如何限制flatMap的并发?
我正在尝试使用 RxJS 编写一个脚本来处理数百个日志文件,每个日志文件大约 1GB。脚本的骨架看起来像
该代码有效,但请注意所有日志文件的过滤步骤将同时开始。但是,从文件系统 IO 性能的角度来看,最好是一个接一个地处理一个文件(或者至少将并发限制为几个文件,而不是同时打开所有数百个文件)。在这方面,我如何以“功能反应方式”实现它?
我曾想过调度程序,但无法弄清楚它如何在这里提供帮助。
javascript - RxJs 中 switchLatest 和 flatmapLastest 有什么区别
我很难看到 RxJs 中 switchLatest 和 flatmapLatest 之间的区别,区别在于一个嵌套的 observable 像在 scala 中一样扁平化,而另一个相当于在返回新的扁平化集合之前执行它?
我是不是错过了什么。
javascript - RxJs 处理异常而不终止
我不确定我对此有多正确,因此,如果任何专家能够纠正我,我将不胜感激。我目前的理解是 observables 是惰性的,并且在订阅之前不会产生值。如果发生错误,observable 将不再发送任何值。在很多情况下,这不是我们想要的。
在下面的代码示例中,我得到了珀斯和伦敦的天气,如果发生错误,则返回一个指示发生错误的对象。这几乎意味着订阅者上的错误块不会被调用,但成功会被调用,我将不得不查看它是否失败并更改逻辑。这是最好的方法吗????
zip 运算符是否会等待所有 obs 生成一个值,而不管排序如何,并在生成 all 中的单个值时返回?
代码如下:
非常感谢任何建议和提示。
提前致谢。
布莱尔。
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
javascript - RxJS:异步变异树
我有一系列对象,我需要通过向每个对象添加一个属性来异步修改它们:
与此同步的等价物是:
但是,在我的情况下,我需要foo
异步附加属性。我希望最终值是foo
添加了属性的对象序列。
我想出了以下代码来解决这个问题。在此示例中,我只是为每个对象添加一个值为bar
.
这是解决我的问题的最佳方法,还是 Rx 提供了一种更好的方法来按顺序异步改变对象?我正在寻找一个更清洁的解决方案,因为我有一个需要变异的深树,并且这段代码很快变得笨拙:
也许我一开始就不应该进行这种突变?