如何从 VertX Future 对象中获取值

How to fetch the value out of VertX Future object

我无法从 Future 对象中检索值。下面是参考代码

Future<Configure> conf = getLatestVersion(request);
Configure cc = conf.result();
float previousVersion = cc.getVersionNo();

这里是 getLatestVersion(request) 的实现


public Future<Configure> getLatestVersion(Configure request) {
        Future<Configure> result = Future.future();
        configRepository.getLatestVersionNo(request).setHandler(res -> {
            if (res.succeeded()) {
                result.complete(res.result());
                System.out.println("==result from db =="+res.result());
                System.out.println("== getVersionNo ="+res.result().getVersionNo());
            } else {
                result.fail(res.cause());
            }
        });
        return result;

    }

在 SOP 中,我能够从 result.result()result.result().getVersion() 获取值,但是在将此方法的结果返回给上述调用者之后,我无法获取这些值。

我想在这里实现的是我需要 Future<Configure>.

中的 Configure pojo 数据

您应该使用 onComplete() 回调(或早期版本中的 setHandler()):

Future<Configure> conf = getLatestVersion(request);
conf.onComplete( res -> {
  if( res.succeded() ){
    Configure cc = res.result();
    float previousVersion = cc.getVersionNo();
  }
} );