Как использовать промежуточные результаты в vertx будущем compose? - PullRequest
0 голосов
/ 10 мая 2019

Я соединяю некоторые звонки, и мне нужно использовать результат 1 будущего в следующем звонке.

В приведенном ниже примере, какой будет самый элегантный способ использовать res1?

  call1()
        .compose(res1 -> call2(res1))
        .compose(res2 -> call3(res2, res1)) // cannot user res1 here!!
        .setHandler(res -> {
            /// omitted for brevity
        });

Я могу заставить call2 вернуть карту, содержащую res1 иres2 но мне интересно, есть ли другой способ.

1 Ответ

1 голос
/ 10 мая 2019

В этом случае вы должны compose результат call2 внутри лямбды, где res1 доступно:

call1().compose(res1 -> {
    return call2(res1).compose(res2 -> call3(res2, res1));
}).setHandler(res -> {
    // omitted for brevity
});
...