如何从 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();
}
} );
我无法从 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();
}
} );