问题标签 [reactivex]

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

javascript - RxJS groupBy 和 combineAll 运算符似乎省略了输出

使用 .groupBy 和 .concatAll 的组合对输出进行分组时,不会生成一些预期的输出。

示例代码:

实际输出:

预期输出:

我是否误解了这些操作员的工作方式?或者这是一个 RxJS 错误?(暂时在https://github.com/Reactive-Extensions/RxJS/issues/1264上作为一个错误提交。)

0 投票
3 回答
2550 浏览

java - RxJava Observable 最小执行时间

我有一个 Observable(从网络获取数据)。问题是 observable 可能快或慢,具体取决于网络条件。

我在 observable 执行时显示进度小部件,并在 observable 完成时隐藏它。当网络速度很快时 - 进步 flikers(出现和消失)。我想将 observable 的最小执行时间设置为 1 秒。我怎样才能做到这一点?

“延迟”运算符不是一个选项,因为即使对于慢速网络它也会延迟。

0 投票
1 回答
3227 浏览

node.js - RxJS 与 rx 节点

RxJSrx-node有什么区别?

为什么我不应该在我的 NodeJS 项目中只使用 RxJS 而不是 rx-node?

0 投票
2 回答
437 浏览

javascript - switch/mergeAll/flatten 不是函数-在cyclejs中使用http驱动程序时

我正在学习 CycleJS,我看到在使用 Cycle 的 HTTP 驱动程序时,我必须合并response stream stream使用 RxJSswitch/mergeAll才能到达流级别。但是当我尝试应用这些函数时,我收到了一个类型错误:(switch is not a function在响应流上)。

如果我遗漏了什么,你能告诉我吗?

0 投票
1 回答
517 浏览

java - RxJava:多次调用网络,延迟增加,忽略错误

我想为网络调用创建一种指数退避。但是,我的网络调用应该重复几次(延迟增加),而不是通常的退避间隔,然后完成 - 无论网络调用的结果是什么。

例如,默认情况应如下所示:

当一些网络调用有错误时,这些错误应该被记录下来,而不是中止任务本身。假设第二个网络调用有错误,那么它应该如下所示:

当所有调用都有错误时:

我已经有一个 Observable 可以调用代码如下所示的网络:

如何重复使用 Observable fromloadStuff()来实现我想要的退避间隔?

0 投票
2 回答
818 浏览

java - RxAndroid:观察一个 EditText,同时观察对 2 个视图的触摸

让我为一项需要我花费数天时间才能弄清楚的小任务动脑筋……

我有一个 EditText,用户将输入一个字符串,该字符串将用于进行 Wikipedia 搜索并将结果提供给 ListView。EditText 应该有 1 秒的限制,并且必须进行过滤才能检查“不适当”字符串列表。如果输入在该字符串列表中,则搜索将不会通过,除非用户同时触摸在屏幕的 2 个角上找到的 2 个隐藏视图,否则它将跳过此检查。

这里有一些片段可以帮助您了解我已经拥有的...

其中 isInappropriate(String s) 是检查是否在数组中找到术语的方法,而 fetchWikiSearch(String s) 执行搜索并填充 ListView。

我尝试了几种方法,最后能想到的方法如下:

但显然,只要我不触及这些视图,它就不会发出任何东西。甚至 Observable.combileLatest() 也不能很好地工作,因为它只有在两个视图都获得 MotionEvent.ACTION_DOWN 时才会发出......

如果您有任何提示或实际解决方案,请随时发表评论。谢谢。

0 投票
3 回答
944 浏览

android - 使用 rxJava 和 retryWhen 运算符限制操作

我的应用程序通常必须做两件事:

  • 一次只接受一个网络请求
  • 如果请求失败重试

这就是我实现它的方式:

看起来不错。

现在我的retryWhen实现:

我是如何使用它的:

...

doOnUnsubscribe()调用任何错误然后储物柜对任何新请求打开的主要问题,直到计时器到期并再次发生重新订阅。那就是问题所在。当计时器计时,用户可以提出另一个请求。

我该如何解决?

0 投票
0 回答
63 浏览

java - 在订阅期间识别订阅者

假设我有一些订阅者实现:

然后,我需要创建一个观察者,根据传递的订阅者执行一些额外的配置。首先是幼稚的方法:

如果我们直接订阅 Observable 就成功了:

但是如果我们对其应用一些操作,情况就会发生变化:

在后一种情况下,一些包装器被传递给 OnSubscribe。在这个包装器的深处有我最初的 ParticularSubscriber,但我没有能力得到它。

有没有办法在观察者的回调中访问最初传递的订阅者?

0 投票
1 回答
26 浏览

javascript - 获取可观察更改失败

我有report.service.ts一个简单的方法来获取reports(它只是一个来自模拟的报表对象的 const 数组),它真正做的是:

现在在我的app.component我想得到那些报告。所以我做了:

就是这样,但它不起作用,显然我在这里做错了,我是可观察的新手:/

谢谢!

0 投票
3 回答
3202 浏览

rxjs - 通过可观察对象过滤可观察对象

让我们考虑以下简化的情况:

  • 我们有一个 Observable apples 类型的 Observable < Apple >
  • 每个 Apple 对象都有一个 isRotten() 方法,它返回一个 Observable < Boolean > 类型的 observable,它保证发出至少一个布尔值。

我想过滤可观察到的苹果,使烂苹果不通过过滤器。更准确地说,当且仅当 A.isRotten() 发出的第一项为 false 时,苹果 A 通过过滤器。实现此过滤器的最佳方法是什么?

经过一番思考,我可以想出这个:

这是用javascript编写的。( ... => ... 是一个函数)。这行得通,但我认为它相当冗长且难以理解。有没有更好的方法来做这种事情?