如果RPC方法返回Void
,那么它会调用onSuccess()
方法吗?或者我必须返回一些值以使RPC调用onSuccess()
方法?
答案 0 :(得分:5)
如果异步请求成功完成,则无论其返回值是否为onSuccess()
方法都将被调用。因此,您不必返回不必要的对象。
void onSuccess(T result)异步调用完成时调用 成功。 From documentation
答案 1 :(得分:3)
如果服务器端方法返回一个对象,代码将如下所示:
rpcService.doSomething(ArgumentToServerSide, new AsyncCallback<ReturnType>() {
@Override
public void onSuccess(ReturnType result) {
// DO what you expect on Success
}
@Override
public void onFailure(Throwable caught) {
// DO what is expected on failure
}
如果服务器端方法没有返回任何内容,即返回类型为void
,那么您的代码将如下所示:
rpcService.doSomething(ArgumentToServerSide, new AsyncCallback<Void>() {
@Override
public void onSuccess(Void result) {
// DO what you expect on Success
}
@Override
public void onFailure(Throwable caught) {
// DO what is expected on failure
}
您是否注意到onSuccess
方法获取了类型Void
的对象,该对象是关键字void的占位符(在http://docs.oracle.com/javase/6/docs/api/java/lang/Void.html检查文档)
因此,如果您的方法返回某种类型,onSuccess
和onFailure
将返回该类型,否则它将返回类型Void
希望这会有所帮助。