问题标签 [publishsubject]

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

android - Debounce 使 PublishSubject 只发出一项

当我.debounce向我的 onScrollS 主题添加调用时,该accept方法仅被调用一次。

我可以滚动并滚动然后暂停十秒钟,没有任何反应。

有人知道为什么吗?

我试过这样的事情:

如果我移除delay零件,它会起作用。

0 投票
1 回答
202 浏览

android - Kotlin 中的 PublishSubject onError 函数

因此,当我尝试订阅PublishSubject.

错误解释非常简单,但是,我尝试实现这个onError功能失败了,我不知道如何以上帝的方式做到这一点。

这里的错误

这里是发布主题:

当我订阅时(在订阅代码中出现错误):

在这里,我尝试以“不错”的方式修复它(没有用,仍然在订阅中崩溃):

在这里,我最终做了什么来修复它而不是崩溃:

我想知道如何以比在订阅中使用 try/catch 块更清洁的方式来实现这一点,如果可能的话。

0 投票
1 回答
43 浏览

rx-java2 - 使用 RxJava2 中的一系列运算符一次处理一个 PublishSubject 发射

我有一个PublishSubject<Event>.

在每个新事件上,我触发一个数据库查询(一些本地缓存的数据),然后获取结果并尝试通过HTTP请求将其发布到服务器,当该服务器回复200,我进行另一个数据库查询以删除刚刚发送的行.

这是通过链接大致如下完成的:

在某些条件下,主题可能会发出两个快速事件,假设间隔为 10 毫秒。

问题是第二次发射的getCachedData ()在第一次发射的 getCachedData() 完成后立即关闭,即在cleanCache()有机会在第二次发射之前清理数据库之前。

我想以某种方式将这些flatMaps组合到一个观察者中,以便在整个链完成之前,主体不会进行新的排放,最好没有任何手工制作的信号量。

我在单个线程池调度程序上执行subscribeOn() ,它只对每个flatMap内的调用进行排序。

我看到了一些将toSerialized()添加到主题的建议,但现在我认为它与链的工作方式无关。

我看到还有lift()compose()运算符。我试图将所有flatMaps放在后者中,这并没有改变行为。前者我仍然想知道。

0 投票
1 回答
274 浏览

android - RxJava 作为事件总线被多次调用,即使只触发一次

我正在尝试实现 RxJava 事件总线,我的用例是在订阅和发送事件时触发。但是使用我的代码,即使我发送一次事件,我也会收到多个事件。它第一次工作正常,从我第二次登录我的应用程序开始就表现得很奇怪。IE; 第一次期望的代码实现了一次,第二次它实现了两次,依此类推。

订阅 RxBus 的代码如下:

在上面的代码中,即使当 sendEvents() 被执行一次时,包含“do action”的行正在执行多次。那么,我在这里做错了什么。当我浏览一些博客时,他们要求在我们第二次访问该屏幕时取消订阅。但是我怎样才能取消订阅呢?

非常感谢您的帮助!