RxKotlin“ withLatestFrom(...)”编译错误:没有足够的信息来推断类型变量R

弗兰克·哈珀

1)下面的代码无法编译并出现错误:“没有足够的信息来推断类型变量R”

keywordChanges
  .withLatestFrom(searchParamsSubject)
  .subscribe { (keyword, searchParams) ->
     ...
  }

2)下面的代码可以编译和运行,但是我希望不要空subscribe()并且不要在合并器函数中添加副作用。

keywordChanges
  .withLatestFrom(searchParamsSubject) { keyword, searchParams ->
    searchParamsSubject.onNext(searchParams.copy(keyword = keyword))
  }
  .subscribe()

3)下面是我试图在1)中调用的RxKotlin库中的代码

/**
 * Emits a `Pair`
 */
inline fun <T, U, R> Observable<T>.withLatestFrom(other: ObservableSource<U>): Observable<Pair<T,U>>
        = withLatestFrom(other, BiFunction{ t, u -> Pair(t,u)  }

如何修改1)中的代码以使其正常工作?

内森·史威曼(Nathan Schwermann)

您必须明确告诉编译器正在使用哪些类。

        val o1 = Observable.just(1)
        val o2 = Observable.just(2)

        o1.withLatestFrom(o2, BiFunction { t1 : Int, t2 : Int ->  t1 to t2})
            .subscribe { (one, two) -> }

另外,RxKotlin扩展功能库可以为您处理此问题。https://github.com/ReactiveX/RxKotlin

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

带有resultSelector的RxSwift withLatestFrom无法编译

withLatestFrom实际上是错误的类型

使用 withLatestFrom 收集存储的变量属性

没有足够的信息来推断类型变量T

`withLatestFrom` - 使用 observable 实现时抛出错误

RxKotlin:尝试添加自定义错误捕获

rxjava2和rxkotlin有什么区别?

改造-带有RxKotlin的android.os.NetworkOnMainThreadException

findViewById错误-没有足够的信息来推断类型变量T。我复制了Java代码并将其在线转换

添加横幅广告, findViewById 提供“没有足够的信息来推断类型变量”。

没有足够的信息来推断类型变量 T1

NGRX影响withLatestFrom Typescript错误ts2345疑难解答

Rx (RxKotlin) - rightGroupJoin 使用 groupJoin - 合并/组合两个不同类型的 observables

RxKotlin - 错误的 subscribeOn、observeOn 线程更改为主题退出活动?

Android-具有Rxkotlin过滤器的Kotlin Sealed类

检查列表并超时(如果未在RxJava / RxKotlin中找到所有条目)

RxJs withLatestFrom/combineLatest :当没有发射任何东西时忽略第二个源

类型推断失败:没有足够的信息来推断Kotlin的Paypal付款中的参数T

类型推断失败:没有足够的信息来推断参数,请明确指定

类型推断失败:没有足够的信息来推断参数T Kotlin

Rxjs-.withlatestfrom的多个来源

RxSwift 简单 withLatestFrom 不触发

Ngrx Effects withLatestFrom导致异常

RxJava / RxKotlin抱怨访问视图

rxkotlin groupby 不起作用

没有足够的信息来推断参数T

AssertJ:类型推断失败:没有足够的信息来推断 org.assertj.core.api.Assertions.fail 中的参数 T

类型推断失败:没有足够的信息来推断 fun <T : Context!> getApplicationContext(): T! 中的参数 T!请明确说明

关于 RXJS 运算符“withLatestFrom”的说明