gpt4 book ai didi

operators - RxJava 在函数中返回订阅值

转载 作者:行者123 更新时间:2023-12-03 06:43:52 28 4
gpt4 key购买 nike

出于某种原因,我有时想使用 RxOperators 而不是普通的 java 方式来转换数据结构,因为它越来越干净。例如:

Observable.from(listOfStrings)
.filter(string -> string.getNumber() >5)
.toList()

是否有任何方法可以等待可观察结果并在函数中返回:这可以(但不起作用):

private String getFilteredString(String string){
Observable.from(listOfStrings)
.filter(string -> string.getNumber() >5)
.toList()
.subscribe(finalStirng -> {
return finalString;
})
}

最佳答案

您可以使用.toBlocking()将任何Observable转换为同步的:

private List<String> getFilteredString(List<String> strings) {
return Observable.from(strings)
.filter(string -> string.length() > 5)
.toList()
.toBlocking()
.single();
}

更新:尽管上面的代码完全有效并且可以按预期工作,但这不是 RxJava 的使用方式。如果您的唯一目标是改造集合,则有更好的方法可以实现:

关于operators - RxJava 在函数中返回订阅值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32849549/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com