问题标签 [xstream-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 回答
132 浏览

javascript - 如何让 xstream 组合鼠标事件?

我正在尝试在 codepen 中使用 cyclejs 进行拖放。HTML 5 支持的标准拖动方法似乎不支持对拖动对象移动的限制,所以我使用标准的 mousedown/mousemove/mouseup。它有效,但并非始终如一。即使 debug() 调用显示已收到 mousedown 和 mousemove 事件并且有时会错过 mouseup,combine() 操作似乎也不会触发。也许我对操作的理解不完整或不正确。本文底部提供了指向 codepen 的直接链接。任何帮助表示赞赏!

https://codepen.io/velociflapter/pen/bvqMGp?editors=1111

0 投票
2 回答
170 浏览

cyclejs - 使用 Cycle.js 将 REST 响应存储到 indexedDB

我正在学习 Cycle.JS 并遇到了挑战。我有一个组件将从 HTTP 调用中获得结果,我想将此响应保存在 indexDB 中。但是,我觉得持久性的请求是另一个组件的责任。

我的问题是:

  1. 这是将 HTTP 响应持久化到 indexDB 的自定义驱动程序的用例吗?
  2. 另一个组件如何访问它没有发出的请求的响应流?
  3. 当我尝试从 HTTP 源中选择类别时,控制台没有记录任何内容。我正在使用 xstream,所以流应该很热,我希望调试能够输出。这里发生了什么?

下面是我进行 HTTP 调用的组件:

这是我在应用程序级别访问响应的尝试:

0 投票
1 回答
121 浏览

cyclejs - 如何阻止流结束

如何阻止该take方法结束嵌套流,以便与 flatten 一起使用?

嵌套流还有其他解决方案吗?我尝试fromDiagram在没有结束符号的情况下合并,但显然这不起作用。

0 投票
1 回答
42 浏览

javascript - 无法在 CycleJs 测试中的模拟 DOM 源中流式传输事件

给定一个用 CycleJs 构建的隔离组件(该组件工作正常):

尝试使用以下方法测试行为@cycle/time

但是activePosition$流直接结束。我不知道它是来自模拟 DOM 的方式(事件似乎没有被触发)还是我构建activePosition$流的方式?

运行测试时,我收到以下消息:

0 投票
1 回答
184 浏览

reactive-programming - XStreams 中忽略的第二个合并分支

我正在使用存储状态插件开发 Cycle JS 应用程序。

该应用程序使用 xstream 作为反应库。

我有一种奇怪的行为。

我的流就是这个图

在此处输入图像描述

在第一次会话 var update 我得到了这个调试结果:

  • 调试 0
  • 调试 1
  • 调试 3

问题:未执行“调试 2”分支

如果我更新会话项(以便产生新的存储事件),则两个分支都按预期执行

  • 调试 0
  • 调试 1
  • 调试 2
  • 调试 3

如果在“debug 0”处添加 .remember() 也会发生同样的良好行为 在此处输入图像描述

  • 调试 0
  • 调试 1
  • 调试 2
  • 调试 3

更奇怪的是,如果我移除过滤器,流程会按预期工作 在此处输入图像描述

没有过滤器(并且没有记住),自第一个事件以来,流程给出了这个结果

  • 调试 0
  • 调试 1
  • 调试 2
  • 调试 3

我的怀疑是在附加第二个分支之前在“调试 0”处观察到的东西,因此第一个事件已经被消耗。但是如果这两个分支是 xs.merged 在一起怎么会发生这种情况呢?如何执行一个分支而第二个不执行?这两个分支没有过滤器或其他处理,它们只是映射到一个 reducer 函数。关于如何调试和解决这种情况的任何建议?

0 投票
1 回答
38 浏览

cyclejs - Cycle.js:获取流,期待 Blob

我正在尝试创建记录音频流。我正在从导航器创建一个承诺流,mediaDevices.getUserMedia然后将该流映射到媒体记录器流。最后,我想用媒体记录器流创建一个 blob 流。

blob遇到的是订阅函数中的变量是流而不是blob。

从中获取结果addEventListener并将其转换为 blob 流的正确方法是什么?

0 投票
1 回答
46 浏览

reactive-programming - 如何使用 xstreamjs 渲染多个组件

假设,我想渲染从 Array 映射的 3 个按钮

但我只得到 id 为 3 的最新按钮

我如何使用 xstream 或 rxjs 获得像这样呈现的所有按钮

0 投票
0 回答
30 浏览

events - 如何匹配 FRP 中的依赖事件(在事件流中)?

我正在寻找一种模式,不确定它是否存在。

我正在使用 xstream,最近遇到了这个问题。我想根据彼此的因果关系/依赖性来匹配事件。

假设 E1(在 Stream1 中)和 E11(在 Stream11 中)导致 E2(在 Stream2 中)。后来,E2 导致 E3(在 Stream3 中)。当 E3 发生时,我想知道 Stream1 上的哪个事件导致了 E3,所以我正在寻找 E1,但是我如何找到它呢?

我在理论上有 3 个想法,1 在实践中似乎是垃圾。

  1. 每个事件也会将它们的“父母”数据复制到自身中,因此可以就地访问整个历史记录。问题是它不能缩放(循环),让我想起冷流,但更糟。嵌套数据,空间密集。
  2. 每个事件都包含对导致它的“父母”的引用,因此可以回溯。扁平数据,对数据的访问主要依赖于计算,但也必须解决空间(无限历史?)。
  3. 创建一个专门的“历史”流(或者只是一个简单的列表?),它具有历史事件,其中包含通过引用以下形状的事件来包含因果关系信息:{parents: Event[], child: Event}。稍后我可以通过过滤回溯事件。或者这个历史容器可能不仅仅是一个列表/流,而是一个为此目的优化的对象。空间(无限历史?)也必须解决。

你怎么看?您对这个问题有任何想法/参考 - 也许是 FRP 世界中的一些东西?对我来说,这有点像“范围界定”的事情。

这一遍又一遍地出现,对我来说,这看起来比我滥用工具要糟糕得多。但也许我是。:)