我有以下RxJava2 Kotlin代码:
val tester = Completable.complete()
.andThen(SingleSource<Int> { Single.just(42) })
.test()
tester.assertComplete()
tester.assertValue(42)
这模拟了一个可完全观察的对象(想象对API的一个简单更新操作),然后是一个可观察的对象(图像是API上的一个get操作)。我希望以一种方式连接这两个可观察对象,当Completable完成时,运行单个对象,最后在我的观察者(Int 42)上获得onSuccess事件。
但是,此测试代码不起作用。断言失败,出现以下错误:
java.lang.AssertionError: Not completed
(latch = 1, values = 0, errors = 0, completions = 0))
我无法理解我做错了什么,我希望Compltable在订阅时发出on完整,然后是单一订阅,我的观察者(tester
)得到一个值为42的on成功事件,但似乎订阅保持“暂停”不发出任何东西。
这个想法与本文中的想法类似:https://android.jlelse.eu/making-your-rxjava-intentions-clearer-with-single-and-completable-f064d98d53a8
apiClient.updateMyData(myUpdatedData) // a Completable
.andThen(performOtherOperation()) // a Single<OtherResult>
.subscribe(otherResult -> {
// handle otherResult
}, throwable -> {
// handle error
});
问题在于静态编程语言对花括号的模糊使用:
.andThen(SingleSource<Int> { Single.just(42) })
您创建了一个SingleSource
,它会注意到它的SingleWatch
,但这被静态编程语言语法隐藏。您需要的是简单易用:
.andThen(Single.just(42))
或延期使用
.andThen(Single.defer { Single.just(42) })
测试1: 测试2: testng.xml
问题内容: 我有一些这样定义的路线: 在这些路线中,我有一个禁区和一个授予访问权页面以授予对该禁区的访问权限。当解析提供者被拒绝时,我将重定向到该路由。 这是执行此操作的代码: 这是我的提供者的代码: (只返回一个布尔值) 我第一次与提供者一起去路线被执行。该路由被拒绝,因为未授予访问权限,我们被重定向到该路由。 在此页面中,用户可以登录并有权访问限制区域。一旦用户登录,我们会将其重定向到该路由,
问题内容: 在Scipy文件中写道: 函数零将创建一个由零组成的数组,函数一个将创建由零组成的数组,函数空将创建一个数组,其初始内容是随机的,并取决于内存的状态。默认情况下,创建的数组的dtype为float64。 所以我运行了这段代码: 返回: 因此,它返回一个随机数,并且一切都很好。 但是,当我第二次运行该代码(在该shell中)时,它返回一个零数组! 问题是,为什么第二次返回零数组(而不是随
如果用户通过cmd输入以下数字:< code>2 -13 4 12 -1 113 19,则输出应为: 但我得到的是这个: 即该对中的第二个数字再次重复自己作为下一对中的第一个数字。代码有什么问题?
本人是24届学生,去年这个时候开始学安卓,没有做过什么特别的项目,都是一些小demo。 上周四上午第一次面试,深圳的一家小厂, 被HR鸽了。 下午补面,第一次面试,过于紧张了,技术面的时候问了两分钟就挂了... 问我有什么复杂的项目,复杂在哪里。突然脑子一片空白,没说出什么,就没有下文了。 今天上午面试的是广州黄埔的一家小厂,boss上招正式工,7k-10k。我私聊hr,然后给了我实习生面试的机会
一家信安公司,产品实习生岗位 1自我介绍 2在校吗?实习时长 3扣项目 4画原型能力? 5互联网核心价值? 6gpt用过吗?原理知道吗 7反问 感觉这个hr有一丢丢不是特别专业,介绍公司业务时也就笼统说一下~可能不是很想要我吧。 总流程也就9min左右… #产品实习,你更倾向大公司or小公司#