问题标签 [kefir.js]

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 回答
281 浏览

javascript - 使用 Kefir 改变具有多个事件的属性的惯用方法

在 Kefir 中创建一个响应多种事件类型而变化的属性的惯用方法是什么?

在我的项目中,我开始使用rxjsFRP 样式的应用程序。在这个应用程序中,我想订阅响应多个变量而改变的状态。这就是我让它工作的方式:

我可以说这可能不是最佳做法。它似乎并不惯用,而且我也刚刚发现为观察者订阅多个来源并不是真正正确的。

出于多种原因,我决定尝试使用与 RxJs 不同的库,现在正在评估 Kefir,它有很好的文档和据说更好的性能。但我发现更难确定如何做我想做的事,除了丑陋的黑客,我必须检查事件类型:

我真的更希望不必为一堆事件类型使用像大条件块这样的不雅技术来创建更改流。

我不打算使用 Bacon.js,但我确实看到它正是我需要的:

有没有一种自然的方法可以用 Kefir 和它的标准操作符来做这种事情,或者这是我最终不得不自己实现的东西?

0 投票
2 回答
340 浏览

javascript - 使用 kefirjs 将数据传递给 React 组件

我是 ReactJS 和“反应式编程”的新手。我尝试根据这个项目创建一个调度程序、操作和存储,但我不知道如何将数据传递给组件。

这个例子中它不起作用。

0 投票
2 回答
5383 浏览

javascript - Highland.js、Kefir.js 和 Rx.js 之间的区别特征是什么?

由于在 SO 上要避免主观答案,我特地问:这三个功能/反应性库之间的功能和/或性能差异是什么,这将使我选择其中一个而不是其他库?我已经淘汰了 BaconJS,因为它依赖于 jQuery。我是 JS 流的新手,主要是想先在 NodeJS 中熟悉它们,然后再在 AngularJS 上下文中熟悉它们。如果您选择了其中之一而不是其他人,那么什么标准会导致选择?

0 投票
1 回答
239 浏览

node.js - Kefir/Bacon.js 中的流处理

我一直在从事一个涉及使用 Kefir(或 Bacon.js,选择你最喜欢的)的实时数据的个人项目,并且已经到了需要将数据记录到数据库中以附加一个 id,然后传递对象的地步id 在链下。实际上将数据插入数据库 (NeDB) 不是问题,而是在将记录插入数据库时​​使用回调和继续执行以及如何解决此问题。

过于简化的例子:

假设我们有几个设备将解析的数据转储到总线/池中:

我怀疑这是对地图功能的不正确或不恰当的使用,但在尝试了几件事后我还是出了主意。任何想法、建议或帮助将不胜感激。

我的解决方案

在做了大量的阅读和实验(在我已经做过的基础上)并回到我每天使用流处理的日子之后,我想出了以下解决方案。虽然这可能不是最有效的,但此解决方案通过将多个事件源插入数据池(未显示)来获取来自多个源的输入。创建一个全新的流以对对象/数据执行单个操作。虽然可扩展性不是这里的目标,但这允许多个来源监视来自流的数据,而不是将其直接转储到过滤器中。最后,来自已处理流的数据被过滤以仅显示我们想要的结果。

0 投票
2 回答
4431 浏览

rxjs - 数组流到流运算符数组中

在 Rx.js 中,如何将数组流转换为流数组,例如我有以下流:['0a','0b'], ['1a','1b'],['2a', '2b','2c'] 我想获得以下流:

是否有任何运营商可以做这样的事情,或者我应该从头开始写一个?

0 投票
1 回答
156 浏览

kefir.js - Do I need to unsubscribe a listener to stream that ends in Kefir?

I'm moving from BaconJS where this isn't an issue because you can just return Bacon.noMore in the subscriber to unsubscribe. In Kefir, unsubscribing is more boilerplate and so the natural question is---for streams that end, do you need to unsubscribe the listener (aka callback) or does Kefir handle that for you automagically?

0 投票
1 回答
45 浏览

throttling - keferjs 流去抖动,但不在 keycode==13(return) 上

我想在除返回之外的所有按键上去抖动。我尝试了以下方法,但它没有反跳。

0 投票
1 回答
195 浏览

rxjs - Kefir.js 拖动示例 - 拖动结束

我一直在尝试将拖动结束流/可观察到 Kefir 拖动 div 示例中,但没有得到任何结果。在 mousedown、mousemove 和 mouseup 组合之后触发事件似乎是有道理的,但我就是找不到让它工作的方法。有任何想法吗?

0 投票
2 回答
400 浏览

rxjs - 功能反应式编程中的忽略/取消/中断流?

有没有办法根据另一个流的输出取消/忽略/中断一个流?

用例是我有 3 个流:

  1. loginStream - 用户输入登录凭据并单击提交。发出登录凭据。
  2. authorizeStream-系统尝试授权用户。发出一个令牌。
  3. logoutStream - 用户按下注销按钮

常见的情况是——用户登录,系统尝试授权,将来某个时候用户退出。这是非常标准的 FRP。

边缘情况是——用户登录但在获得授权之前立即注销。

为了防止系统进入奇怪的状态,在这种特殊情况下,我需要忽略授权流。我唯一能想到的是(1)合并三个流,(2)通过扫描跟踪状态,(3)注销将状态设置为logout,登录将状态设置为login。过滤掉不在的授权事件login

上述方法应该可行,但我想知道是否有一种更简洁的“更多 FRP”方式来忽略授权流。

0 投票
1 回答
90 浏览

javascript - 捕获所有关键输入,直到 ENTER 以反应式编程方式被击中

在 Javascript 和使用 Kefir 中,我想捕获所有关键输入,直到ENTER被击中。到目前为止,我已经设法使用bufferWhilelike

但最初我想使用scan常规

但是我该怎么做:

  1. ENTER击中时输出累加器?
  2. 重新启动累加器以开始新的击键序列?

本质上,您如何bufferWhile使用scan单个流进行组合?答案不必专门针对 Kefir,任何 FRP 伪代码都可以。