问题标签 [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.
javascript - 如何让 xstream 组合鼠标事件?
我正在尝试在 codepen 中使用 cyclejs 进行拖放。HTML 5 支持的标准拖动方法似乎不支持对拖动对象移动的限制,所以我使用标准的 mousedown/mousemove/mouseup。它有效,但并非始终如一。即使 debug() 调用显示已收到 mousedown 和 mousemove 事件并且有时会错过 mouseup,combine() 操作似乎也不会触发。也许我对操作的理解不完整或不正确。本文底部提供了指向 codepen 的直接链接。任何帮助表示赞赏!
cyclejs - 使用 Cycle.js 将 REST 响应存储到 indexedDB
我正在学习 Cycle.JS 并遇到了挑战。我有一个组件将从 HTTP 调用中获得结果,我想将此响应保存在 indexDB 中。但是,我觉得持久性的请求是另一个组件的责任。
我的问题是:
- 这是将 HTTP 响应持久化到 indexDB 的自定义驱动程序的用例吗?
- 另一个组件如何访问它没有发出的请求的响应流?
- 当我尝试从 HTTP 源中选择类别时,控制台没有记录任何内容。我正在使用 xstream,所以流应该很热,我希望调试能够输出。这里发生了什么?
下面是我进行 HTTP 调用的组件:
这是我在应用程序级别访问响应的尝试:
cyclejs - 如何阻止流结束
如何阻止该take
方法结束嵌套流,以便与 flatten 一起使用?
嵌套流还有其他解决方案吗?我尝试fromDiagram
在没有结束符号的情况下合并,但显然这不起作用。
javascript - 无法在 CycleJs 测试中的模拟 DOM 源中流式传输事件
给定一个用 CycleJs 构建的隔离组件(该组件工作正常):
我尝试使用以下方法测试行为@cycle/time
:
但是activePosition$
流直接结束。我不知道它是来自模拟 DOM 的方式(事件似乎没有被触发)还是我构建activePosition$
流的方式?
运行测试时,我收到以下消息:
reactive-programming - XStreams 中忽略的第二个合并分支
该应用程序使用 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 函数。关于如何调试和解决这种情况的任何建议?
cyclejs - Cycle.js:获取流,期待 Blob
我正在尝试创建记录音频流。我正在从导航器创建一个承诺流,mediaDevices.getUserMedia
然后将该流映射到媒体记录器流。最后,我想用媒体记录器流创建一个 blob 流。
我blob
遇到的是订阅函数中的变量是流而不是blob。
从中获取结果addEventListener
并将其转换为 blob 流的正确方法是什么?
reactive-programming - 如何使用 xstreamjs 渲染多个组件
假设,我想渲染从 Array 映射的 3 个按钮
但我只得到 id 为 3 的最新按钮
我如何使用 xstream 或 rxjs 获得像这样呈现的所有按钮
events - 如何匹配 FRP 中的依赖事件(在事件流中)?
我正在寻找一种模式,不确定它是否存在。
我正在使用 xstream,最近遇到了这个问题。我想根据彼此的因果关系/依赖性来匹配事件。
假设 E1(在 Stream1 中)和 E11(在 Stream11 中)导致 E2(在 Stream2 中)。后来,E2 导致 E3(在 Stream3 中)。当 E3 发生时,我想知道 Stream1 上的哪个事件导致了 E3,所以我正在寻找 E1,但是我如何找到它呢?
我在理论上有 3 个想法,1 在实践中似乎是垃圾。
- 每个事件也会将它们的“父母”数据复制到自身中,因此可以就地访问整个历史记录。问题是它不能缩放(循环),让我想起冷流,但更糟。嵌套数据,空间密集。
- 每个事件都包含对导致它的“父母”的引用,因此可以回溯。扁平数据,对数据的访问主要依赖于计算,但也必须解决空间(无限历史?)。
- 创建一个专门的“历史”流(或者只是一个简单的列表?),它具有历史事件,其中包含通过引用以下形状的事件来包含因果关系信息:{parents: Event[], child: Event}。稍后我可以通过过滤回溯事件。或者这个历史容器可能不仅仅是一个列表/流,而是一个为此目的优化的对象。空间(无限历史?)也必须解决。
你怎么看?您对这个问题有任何想法/参考 - 也许是 FRP 世界中的一些东西?对我来说,这有点像“范围界定”的事情。
这一遍又一遍地出现,对我来说,这看起来比我滥用工具要糟糕得多。但也许我是。:)