【问题标题】:Spring RxJava2CrudRepository not saving until call on returnSpring RxJava2CrudRepository 直到调用返回才保存
【发布时间】:2017-06-13 12:53:51
【问题描述】:

我正在使用带有新 RxJava2CrudRepository 的 springboot 我观察到当我打电话时

parkingContentRepo.save(new ParkingContent());

没有任何东西被写入数据库。 当我打电话时

parkingContentRepo.save(new ParkingContent()).blockingGet();

条目已写入。

也许这是一个愚蠢的问题。但是我为什么要调用blockingGet(我想订阅也可以)?

这使得 api 更难使用。如果有人忘记了通话,则不会保留任何内容。

【问题讨论】:

    标签: spring-boot rx-java


    【解决方案1】:

    在使用 Observables、Flowables 或任何其他响应式流 API 时,您需要记住,在大多数情况下,除非您订阅,否则操作将不会启动。在您的情况下,.blockingGet() 在内部订阅save 返回的反应对象。

    为什么会这样?因为这使您可以轻松组合操作,同时保留根据您的要求调整异步性的能力。

    这使它成为easier to work with external APIs without blocking,但当您有非常孤立的异步/反应代码孤岛时,它更难使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-02
      • 2013-08-04
      • 1970-01-01
      相关资源
      最近更新 更多