我正在尝试使用concat()运算符来获取数据库和网络的结果,并对每个结果对象执行一组操作。
但是,我有一些操作只能执行一次,即一旦获得第一个成功的结果,如果其他结果与第一个不同,则应跳过这些操作,或者如果第一个结果不成功,则应将其跳过完成第二个结果。
我不想阻止任何依赖于任何数据库或网络结果的运算符,每当有每个结果可用时,都应立即进行操作。
现在,我创建了一个示例项目,并且我有这样的东西:
display
目前,以上代码的结果将是:
<mat-tab-group>
<mat-tab label="First" #firstTab>
</mat-tab>
<mat-tab label="Second" #secondTab></mat-tab>
</mat-tab-group>
<div [ngStyle]="{'display':!firstTab.isActive ? 'none' : null}">First</div>
<div [ngStyle]="{'display':!secondTab.isActive ? 'none' : null}">Second</div>
我想要上面的代码:
val flowable1 = Flowable.just(1)
val flowable2 = Flowable.just(2).delay(2, TimeUnit.SECONDS)
Flowable.concat(flowable1, flowable2)
.map {
//operation that should be done every time
Log.d("TAG", "Printing result=$it")
return@map it
}
.map {
//it should also be different than previous result (it)
//this operation should only be done when there is a
//valid result but only once
if(it != 0) {
Log.d("TAG", "Printing only once=$it")
}
return@map it
}
.subscribe {
Log.d("TAG", "Printing the results=$it")
}
有谁知道我该怎么做地图运算符才能将第二个地图运算符打印一次,比较第一个Int结果不等于最新结果?