Вы запускаете несколько запросов, в которых (исходя из сообщения об ошибке) действительно должен быть вызван последовательно.
Каждый раз, когда вы звоните более чем на один вызов RPC; попытайтесь подумать, что вы должны иметь возможность переставить их в любом порядке (потому что это практически все, что происходит на самом деле, потому что они асинхронные) ... Если запускать их в обратном порядке не имеет смысла; Вы не можете запустить их последовательно!
Два способа решить вашу проблему:
Вложение:
service.callFirst(someData, new AsyncCallback<Void> callback = new AsyncCallback<Void>(){
@Override
public void onFailure(Throwable caught) {/*Handle errors*/}
@Override
public void onSuccess(Void result){
service.callSecond(someOtherData, new AsyncCallback<Void> callback = new AsyncCallback<Void>(){
/* onSuccess and onFailure for second callback here */
});
}
});
Или создание одного вызова службы, который выполняет оба действия (рекомендуется):
service.callFirstAndSecond(someData, someOtherData, new AsyncCallback<Void> callback = new AsyncCallback<Void>(){
@Override
public void onFailure(Throwable caught) {/*Handle errors*/}
@Override
public void onSuccess(Void result){
/* Handle success */
}
});
Второй вариант, скорее всего, будет гораздо менее запутанным, поскольку несколько вложенных асинхронных обратных вызовов быстро растут и приводят к путанице, также вы делаете только один запрос.