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

knockout.js - Knockout.js 和 Rx.js 有什么区别?

有谁知道RxJsKnockout之间的区别?在我看来,他们似乎在尝试解决同样的问题,构建一个事件驱动的 UI。但是,对于两者都有经验的人,它们有何不同/有何相似之处?你能描述一些关于他们的事情来帮助我选择吗?

0 投票
5 回答
2534 浏览

system.reactive - 如何先发生然后将事件抑制 2 秒(RxJS)

我认为 RxJS 应该非常适合抑制重复按钮点击 2 秒。但是,我正在努力实施。

为了您的方便,我已经创建了一个 jsFiddle。你需要在这个小提琴中向下滚动,因为我只是在里面粘贴了 Rx,因为我找不到 CDN。

http://jsfiddle.net/cburgdorf/mUMFA/2/

0 投票
2 回答
240 浏览

system.reactive - 每当流 B 触发时,如何抑制流 A 的下一个事件

每当流 B 触发时,我想停止流 A 以获得一个通知。两个流都将保持在线并且永远不会完成。

或者

0 投票
2 回答
528 浏览

system.reactive - 使用一个主题传播完全不同的事件流

我需要通过一个主题代理所有不同的事件流。

我想出了这段代码:

得到输出:

预期输出:

对于bar事件,它就像一个魅力:onNext将被传播,一旦错误引发,onError函数就会被调用并且事件流结束。但是,我无法让它为onComplete.

每当发出完整的通知时,我确实会看到它Rx.Observable.empty()被调用,但这不会导致订阅者onComplete处理程序被调用。相反,它调用它的onNext处理程序。

0 投票
3 回答
18853 浏览

rxjs - 发布 observable 的最后一个值

我有一个热门的 observable(在这种情况下是一个主题):

我想创建另一个可观察的,每次进行新订阅时都会立即触发产生的最后一个值。

所以在伪代码中:

这大致是我想要的,它似乎工作。但是,我想必须有一些内置机制来实现相同的

0 投票
1 回答
4290 浏览

javascript - RxJS:可观察对象和单个观察者的递归列表

我在可观察的递归链上遇到了一些麻烦。

我正在使用 RxJS,它目前的版本为 1.0.10621,包含最基本的 Rx 功能,以及用于 jQuery 的 Rx。

让我为我的问题介绍一个示例场景:我正在轮询Twitter 搜索 API(JSON 响应)以获取包含某个关键字的推文/更新。响应还包括一个“refresh_url”,应该使用它来生成后续请求。对该后续请​​求的响应将再次包含新的 refresh_url 等。

Rx.jQuery 允许我将 Twitter 搜索 API 调用变成一个可观察的事件,该事件会产生一个 onNext 然后完成。到目前为止,我尝试的是让 onNext 处理程序记住 refresh_url 并在 onCompleted 处理程序中使用它来为下一个请求生成一个新的 observable 和相应的观察者。这样,一对可观察者 + 观察者对无限期地跟随另一对。

这种方法的问题是:

  1. 后续的 observable/observer 在其前辈还没有被处理掉的时候就已经存活了。

  2. 我必须做很多令人讨厌的簿记才能保持对当前活着的观察者的有效引用,其中实际上可能有两个。(一个在 onCompleted 中,另一个在其生命周期的其他地方)当然,需要取消订阅/处置观察者。簿记的替代方法是通过“仍在运行?”布尔值来实现副作用,正如我在示例中所做的那样。

示例代码:

不要被从请求到推文的双层 observables/observers 所迷惑。我的示例主要关注第一层:从 Twitter 请求数据。如果在解决这个问题时,第二层(将响应转换为推文)可以与第一层合二为一,那就太棒了;但我认为那是完全不同的事情。目前。

Erik Meijer 向我指出了 Expand 运算符(参见下面的示例),并建议将Join 模式作为替代方案。

这应该可以复制粘贴到 LINQPad 中。它假设单例 observables 并产生一个最终的观察者。

所以我的问题是:如何在 RxJS 中做最好的扩展技巧?

编辑:扩展运算符可能可以按照此线程
中所示的方式实现。但是需要生成器(我只有 JS < 1.6)。 不幸的是,RxJS 2.0.20304-beta没有实现 Extend 方法。

0 投票
2 回答
5638 浏览

node.js - RxJS + node.js HTTP 服务器实现?

在 RxJS 实现之前,我对 node.js 一直很好。

这是我正在学习的试用代码-

Reactive-Extensions / rxjs-node https://github.com/Reactive-Extensions/rxjs-node


rx_http.js
(node.js 的 http 库的 RxJS 包装器)


服务器.js


代码以一次性“hello world”输出到浏览器结束,并且 RxServer 停止对另一个访问(浏览器重新加载等)做出反应。

我正在学习 RxJS 的东西,但在网上找到的文档很少。

告诉我代码有什么问题,如果您知道更好的实现,请分享。谢谢你。

0 投票
2 回答
120 浏览

javascript - 是否可以使用 Rx for JavaScript 在一个时间范围内观察一些特定的 dom 事件

keyup如果 dom 事件 ( ) 在某个时间范围内发生特定次数,我会尝试收到通知。我看到有一个节流阀可以在某个时间范围内丢弃事件,我想计算它们。例如,我只想keyup在 500 毫秒内某个文本框的事件发生 10 次时收到通知。

0 投票
1 回答
5594 浏览

javascript - RxJS 多个订阅 Observable.Interval

有没有像 RxJS 一样的解决方案? 是否可以在 Rx 的不同线程上调用订阅者的 OnNexts?

PS 我的第一个天真的方法(在 CoffeeScript 中)显然失败了:

第二次订阅在 35s 间隔内不返回任何内容,依此类推

0 投票
4 回答
18885 浏览

javascript - 我可以使用 rx.js 观察对数组的添加吗?

github 上的 fromArray Rx wiki

看起来该subscribe函数在创建时只会触发一次。看起来这有点用词不当,因为我实际上只是在为数组而不是观察它的变化。不过,该代码几乎与 wiki 上的代码完全相同。所以要么我做错了,要么subscribe没有按照我的预期工作。