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

jquery - toObservable 的替代方案是什么?

我正在尝试使用 RxJS,但我得到的例子有点老了。我需要运行的代码是这样的:

toObservable已被删除。我的研究没有帮助。我什至发现这篇文章要求toObservable退货,但没有解释替代方案。

https://github.com/Reactive-Extensions/rxjs-jquery/issues/4

有谁知道替代品是toObservable什么?

0 投票
3 回答
1819 浏览

node.js - Reactive-Extensions / RxJS 对 node.js 的实现

我只是想实现

https://github.com/Reactive-Extensions/RxJS

到我的节点项目。

当然,有可用的 npm-package,但我看到它更新较少,模块较少,并且只使用了 min. 文件,所以我想使用来自 git 源的 rxjs。

我下载了 RxJS-master 并将目录下的整个文件复制到 ../myProject/lib/rx/

我懂了

这些文件中的rx.node.js

所以,我的 app.js代码是这样的

这会产生如下错误,

怎么了?


如果我将 rx.node.js修改为

代码按预期工作,因此显然require - sub modules部分进展不顺利。


谢谢。

0 投票
1 回答
924 浏览

javascript - 如何用 RxJS 判断一个 Observable 是否正在“等待”另一个(例如,对于 Ajax 请求指示器)

在学习 RxJS 时,我想知道:

如何创建一个告诉 Observable X 在 Observable Y 之后是否有价值的 Observable?

示例需要判断是否有 Ajax 请求待处理响应?就像等待Bacon.js一样。

0 投票
1 回答
1207 浏览

javascript - 如何在 RxJS 中通过订阅获得类似 Promise 的模式?

我试图弄清楚 RxJS 中的任何现有运算符是否可以实现以下操作,或者我是否需要推出自己的扩展:

最好的,埃吉尔。

0 投票
1 回答
2703 浏览

javascript - 使用 RxJS 缓冲/限制元素拖动事件

当某些事情发生在连续的事件源(拖动元素)上时,我想实现一个场景 - 但有一些缓冲/节流。我想收到通知让我们说

  • 每 400 毫秒
  • 但前提是源中有新项目(实际发生了拖动)

我与下面概述的节流操作符最接近的想法只是等待 400 毫秒的暂停,然后提供序列 - 它不提供连续拖动的值:

我想需要一些定时器源,但在这种情况下,我如何将定时器源和拖动源与上述标准结合起来?

0 投票
2 回答
1203 浏览

rxjs - Observable.create 和 Observable.createWithDisposable 之间的区别

Observable.create和 和有什么不一样Observable.createWithDisposable?我看不到文档或查看源代码的区别。

0 投票
4 回答
3950 浏览

rxjs - 不假定您熟悉响应式编程概念或 Rx .NET 的 RxJS 教程?

我试图了解 RxJS 的工作原理以及它是否适合我的需要,但我遇到的每一篇文章都假设读者已经熟悉反应式编程概念或了解 .NET 版本。

有没有针对普通 JavaScript 开发人员的材料?

0 投票
1 回答
656 浏览

reactive-programming - 将可观察序列转换为仅从最近的可观察序列产生值的可观察序列

示例 1:

obsContext是一个 observable,它将从obsText1或返回数据obsText2,具体取决于 的值obsNumber

示例 2:

obsSelect是一个可观察对象,它将从arrOfObservables由 . 生成的值确定的数组中返回所选可观察对象的数据obsNumber

我无法弄清楚如何使用 RxJS 来指定这种行为。在我看来,我需要能够在多个可观察对象之间动态订阅/取消订阅。

如何使用 RxJS 使这两个示例工作?

0 投票
1 回答
1920 浏览

reactive-programming - 捕获可观察对象之间的循环依赖

我有一个用户编程场景,用户最终可以创建两个相互依赖的 observables。RxJS 不允许循环依赖,据我所知,内存或堆栈达到了它的限制,并且onError使用 value 触发回调true

如何显式检测循环依赖并抛出更具描述性的错误消息?

这段代码说明了如何在 RxJS 中创建循环依赖:

错误信息很简单true

0 投票
1 回答
1408 浏览

functional-programming - node.js fs.readdir 异步递归目录搜索的懒惰评估/流/FRP代码

我尝试使用 node.js 实现一个读取 FileSystem 目录树的列表结构

目录/文件结构:

-> 列表结构:

因此,例如,给定的 UNIX 根目录:

相当于一个列表:


话虽如此,我想用一些惰性异步序列(流/无限列表?)来实现这段代码。

node.js fs.readdir 递归目录搜索 是一个很好的参考。

node.js 有很多优秀的库,例如file.walk等,但这是一个非常有趣的主题,实际上存在很多代码示例。

换句话说,学习惰性异步序列(流/无限列表?)的基本概念的好主题,并且代码可以是一个很好的库,我想从头开始实现。



substack/stream-handbook涵盖了如何使用编写 node.js 程序的基础知识。真正优秀的文章。


所以,这是我对这个主题的想法 - 递归目录树处理:

  • 本主题涉及递归搜索,有两种方式:asyncsync,由于各种原因,我选择了async方法。

  • 搜索结果相当于一个列表结构,其中函数式编程 范式确实很重要(Lisp/Scheme)。

  • 对于 JavaScript 函数式编程,有诸如underscore.js之类的库,最近,lazy.js有一个重要区别:惰性求值(也称为延迟执行)似乎优于 underscore.js

  • lazy.js 也在 Node.js 中封装了流处理。我还发现stream.js说:无限数量的元素。他们的力量来自于被懒惰的评估,简单来说就是他们可以包含无限的物品。.

  • 流数据(无限列表)实现反应式函数式编程(FRP)范式。lazy.js 实际上演示了一个鼠标事件 FRP 实现。RxJS是一个 FRP 库:RxJS 或 Reactive Extensions for JavaScript 是一个用于转换、组合和查询数据流的库。

  • 此主题的异步方法FRP主题。

  • 因此,惰性求值是函数式编程更快处理列表的核心因素,并将列表扩展为无限列表(流),将异步/事件集成到流数据源以在函数式编程范式(FunctionalReactiveProgramming)中进行处理。

  • node-lazy简介明确指出:当您需要将事件流视为列表时,Lazy 非常方便。目前最好的用例是从异步函数返回一个惰性列表,并通过事件将数据泵入其中。在异步编程中,您不能只返回一个常规列表,因为您还没有数据。到目前为止,通常的解决方案是提供一个在数据可用时调用的回调。但是这样做会失去链接函数和创建管道的能力,这会导致接口不那么好。(请参阅下面的第二个示例,了解它如何改进我的一个模块中的界面。)


最后,这是我关于这个主题的问题 - 递归目录树处理:

是否有任何示例代码可以专门以惰性评估或 FRP 方式实现此主题?

我知道lazy.js、stream.js 或linq.js 是基于惰性评估的,但它们中的任何一个都不能将node.js fs.readdir 定义为异步处理(FRP)的流数据。根据http://danieltao.com/lazy.js/docs/AsyncSequence.html,它还没有实现,对吗?

RxJS可能可以,但我不知道如何。

谷歌rx.Observable fs.readdir什么也没打。

有任何想法吗?