在Ratpack中使用Blocking.get()方法后如何返回对象或列表?
Blocking.get(()->
xRepository.findAvailable()).then(x->x.stream().findFirst().get());上面的行返回void -我希望能够像下面这样做,这样它就可以在then子句中返回对象。我尝试添加一个返回语句,但不起作用。
Object x = Blocking.get(()->
xRepository.findAvailable()).then(x->x.stream().findFirst().get());发布于 2017-09-28 07:54:06
当值可用时,您可以使用map来处理该值。
Blocking.get(() -> xRepository.findAvailable())
.map(x -> x.stream().findFirst().get())
.then(firstAvailable -> ctx.render("Here is the first available x " + firstAvailable))Ratpack的Promise不像Promise.get()那样提供阻塞操作,阻塞当前线程并返回结果。相反,您必须订阅promise对象。您可以使用的方法之一是Promise.then(Action then),它允许您指定在给定值可用时将触发的操作。在上面的示例中,我们使用ctx.render()作为阻塞操作的值准备就绪时触发的操作,但您也可以做其他事情。
https://stackoverflow.com/questions/46458406
复制相似问题