如何在vertx未来撰写中使用中间结果?

时间:2019-05-10 09:38:45

标签: vert.x compose

我正在链接一些电话,因此我需要在下一个电话中使用1 Future的结果。

在下面的示例中,最能使用res1的方式是什么?

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

我可以让call2返回包含res1res2的地图,但是我想知道是否还有另一种方法。

1 个答案:

答案 0 :(得分:1)

在这种情况下,您应该在可访问compose的lambda中call2 res1的结果:

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