Spring Reactor: Как застегнуть два Flux, но с заказом? - PullRequest
1 голос
/ 28 апреля 2019

Предположим, у меня есть две внешние службы. Допустим, у нас есть элемент Foo, и serviceA возвращает элемент A, а serviceB возвращает элемент B.

Я бы хотел получить обработчик вида (A a, B b), где a и b - соответствующие объекты для того же запрашиваемого элемента.

Flux::zip - самая близкая вещь, которую я нашел до сих пор, но это не совсем то, что я ищу, так как заказ не обещан. Я ищу что-то вроде CompletableFuture :: allOf

Я всегда могу обманывать, делая эти два вызова синхронными, но это отвлекает от реактивного программирования. В качестве альтернативы, я мог бы управлять некоторым кешем и выдавать записи только тогда, когда два элемента были доставлены, но я предпочитаю хранить вещи без сохранения состояния.

1 Ответ

0 голосов
/ 28 апреля 2019

Оформить заказ: concatWith . Вы можете изучить другие варианты concat согласно вашему требованию.

Примечание: Flux.concat(f1, f2) или f1.concatWith(f2) по сути одинаковы.

...