当前位置: 首页 > 知识库问答 >
问题:

RxJava可观测单显示当前线程

穆商震
2023-03-14

我试图理解可观察性是如何工作的,我想展示当前线程以更好地理解。整个应用程序是用java 8构建的,并使用lambda表达式。没有太多的经验,我发现用这样的表达式显示当前线程有一些困难:

.subscribeOn(Schedulers.io())                          
.observeOn(Schedulers.computation())
.flatMap(..... -> {

我喜欢这样写:

log.info("Current Thread:", Thread.currentThread().name)

但是我找不到一种方法来做它作为订阅(Schedulers.io())和观察(Schedulers.computation())返回和单一,没有办法把这样的东西:

.subscribeOn(Schedulers.io())
.log.info("Current Thread:", Thread.currentThread().name)
.observeOn(Schedulers.computation())
.log.info("Current Thread:", Thread.currentThread().name)
.flatMap(..... -> {

谢谢

共有1个答案

陶星渊
2023-03-14

您正在尝试记录当前线程,对吗?

只需使用map进行日志并返回相同的值:

.subscribeOn(Schedulers.io())
.map(it -> {
    log.info("Current Thread:", Thread.currentThread().name)
    return it;
})
.observeOn(Schedulers.computation())
.map(it -> {
    log.info("Current Thread:", Thread.currentThread().name)
    return it;
})
.flatMap(..... -> {
 类似资料:
  • 下面的代码仅在观察2完成后才从观察1发出项。 我需要实现另一种行为 第二个可观测对象仅发射项目,而第一个可观测对象为空,然后发射第一个可观测对象的项目。 我无法找到只使用基本运算符的正确解决方案,自定义运算符startWithDefault的正确RxJava 2实现应该是什么样子? 附笔。 由于种族原因,在可观察到立即发射的情况下,这不是正确的解决方案1

  • 我正在尝试开发我的第一个RxJava例子 我有一个带有文本框和三个按钮的主要活动。第一个按钮初始化单独类中的整数。第二个按钮订阅一个可观察量,该可观察量假定正在观察整数。第三个按钮将整数的值减小 1。 这是我的密码 和班级 当我尝试使用 订阅时,它只是给了我 的值(即 6),然后它给了我完成! 然后我尝试使用,认为我需要使用,只是而不是,但后来我得到了一个返回的空的,然后再次完成! 有人能帮助我从

  • 在android 6.0.1 Samsung s6 Edge+上的测试 当device screen脱机并从debug中拔出时,可观察到的只是停止发射项目。如果设备打开,则开始发射对象。另一个问题是,在停止接收项目之前,我会按照相同项目的顺序随机地得到2/3个重复调用 ____________________________edit_________________________________

  • 我正在开发利用RxJava、realm和改进的应用程序。 我需要创建非常具体的数据处理链。我需要在io调度程序上执行改装调用,然后在我的自定义单线程领域调度程序上处理提供的数据,然后将结果推送到主线程调度程序上的ui。我试图通过使用多个组合来实现这一点,包括观察(observeOn)和订阅(subscribeOn),但我无法让中间部分在调度程序(scheduler)上执行。 我的目标是这样的

  • 我使用的是RxJava和RxAndroid,我想将两个可观察到的东西结合起来,但在这两个东西之间,我需要更新UI,所以在到达订阅服务器之前,我必须在主线程中执行代码。 一个解决方案,而不是flatmapping(这是一个被接受的术语吗?)两个可观察到的,将是在更新UI之后在订阅服务器中调用下一个可观察到的,但我觉得应该有一个更优雅的解决方案,比如: 当然,很可能map不是我这里需要使用的运算符。那

  • 问题内容: AngularJS是否可以在当前页面的链接上设置类提供任何帮助? 我想象有一种神奇的方法可以完成,但是我似乎找不到。 我的菜单如下: 并且我在自己的路线中有针对每个控制器的控制器:和。 但是我想不出一种方法来将链接上的“活动”类绑定到控制器。 有什么提示吗? 问题答案: 在看 在控制器上 这样,任务链接将在以’/ tasks’开头的任何url中具有活动类(例如’/ tasks / 1