提问者:小点点

在通量中使用单声道结果


问题方法需要等待单声道操作结果,在通量操作中使用,并返回通量。

public Flux<My> getMy() {
  Mono<ZonedDateTime> dateTimeMono = getDateTime();

  Flux<My> mies = reactiveMongoTemplate.find(
        new Query(Criteria.where("dateTime").gt(dateTimeMono)),
        My.class,
        collectionName);

  return mies;
}

研究我希望dateTimeMono流被Mongo反应驱动订阅并终止,所以我不订阅。如果我使用Mono。zip我有单声道

任务如何等待dateTimeMono值,在通量操作中使用它并从中获取通量?


共1个答案

匿名用户

你应该使用flaMap很多:

public Flux<My> getMy() {
    return getDateTime().flatMapMany(date -> reactiveMongoTemplate.find(new Query(Criteria.where("dateTime").gt(date)),My.class,collectionName));
}