RxJava - 传递变量
RxJava - Pass variable
我有以下代码可以正常编译:
public Publisher<Foo> test() {
return someObservable
.map(a -> someMethod(a, null))
.toFlowable(BackpressureStrategy.BUFFER);
}
我现在想调用一个方法并传入它的结果来使用而不是空值。我的猜测是像这样包装原始代码:
public Publisher<Foo> test() {
return getSomeCollection()
.map(myCollection ->
someObservable
.map(a -> someMethod(a, myCollection))
)
.toFlowable(BackpressureStrategy.BUFFER);
}
但是这给了我一个类型不匹配错误'Cannot convert from Single<Object> to Publisher<Foo>'
如果我将外部地图更改为平面地图,我会得到 'Cannot convert from Flowable<Foo> to SingleSource<? extends Object>'
我需要修改什么才能编译?
使用flatMapPublisher
代替map
return getSomeCollection()
.flatMapPublisher(myCollection ->
someObservable
.map(a -> someMethod(a, myCollection))
.toFlowable(BackpressureStrategy.BUFFER)
);
我有以下代码可以正常编译:
public Publisher<Foo> test() {
return someObservable
.map(a -> someMethod(a, null))
.toFlowable(BackpressureStrategy.BUFFER);
}
我现在想调用一个方法并传入它的结果来使用而不是空值。我的猜测是像这样包装原始代码:
public Publisher<Foo> test() {
return getSomeCollection()
.map(myCollection ->
someObservable
.map(a -> someMethod(a, myCollection))
)
.toFlowable(BackpressureStrategy.BUFFER);
}
但是这给了我一个类型不匹配错误'Cannot convert from Single<Object> to Publisher<Foo>'
如果我将外部地图更改为平面地图,我会得到 'Cannot convert from Flowable<Foo> to SingleSource<? extends Object>'
我需要修改什么才能编译?
使用flatMapPublisher
代替map
return getSomeCollection()
.flatMapPublisher(myCollection ->
someObservable
.map(a -> someMethod(a, myCollection))
.toFlowable(BackpressureStrategy.BUFFER)
);