GWT RPC.Когда вызывается метод onSuccess ()? - PullRequest
2 голосов
/ 14 февраля 2012

Если метод RPC вернет Void, будет ли он вызывать метод onSuccess()? Или я должен вернуть какое-то значение, чтобы RPC вызвал onSuccess() метод?

Ответы [ 2 ]

5 голосов
/ 14 февраля 2012

Если асинхронный запрос завершается успешно, независимо от его возвращаемого значения, будет вызван метод onSuccess().Таким образом, вам не нужно возвращать объект, который не является необходимым.

void onSuccess (T result) Вызывается при успешном завершении асинхронного вызова. Из документации

3 голосов
/ 14 февраля 2012

Если ваш метод на стороне сервера возвращает объект, код будет выглядеть следующим образом:

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 Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...