问题描述
我正在使用RxJava2,Micronaut和Cassandra处理反应流。我是rxjava的新手,不确定以最佳异步方式返回List Person的正确方法是什么?
数据来自Cassandra Dao界面
public interface PersonDAO {
@Query("SELECT * FROM cass_drop.person;")
CompletionStage<MappedAsyncPagingIterable<Person>> getAll();
}
被注入到micronaut控制器中
return Single.just(personDAO.getAll().toCompletableFuture().get().currentPage()) .subscribeOn(Schedulers.io()) .map(people -> HttpResponse.ok(people));
OR
return Single.just(HttpResponse.ok()) .subscribeOn(Schedulers.io()) .map(it -> it.body(personDAO.getAll().toCompletableFuture().get().currentPage()));
或切换到RxJava3
return Single.fromCompletionStage(personDAO.getAll()) .map(page -> HttpResponse.ok(page.currentPage())) .onErrorReturn(throwable -> HttpResponse.ok(Collections.emptyList()));
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)