네이티브 Java 응용 프로그램을 GWT로 변환하는 중입니다. 서버와의 통신은 상태 변경 중에 만 발생하며 지금까지는 차단 작업에 의해 처리되었습니다.GWT : 비동기 RPC로 차단 호출 바꾸기
현재 동기화 로직 :
void onUserClickedSync() {
downloadData(); // blocking operation
uploadData(); // blocking operation
setState(DONE);
}
가 어떻게 비동기 콜백을 활용하는 사람들과 작업을 차단 교체에 접근 할 수 있습니까?
현재 나의 생각은 본질적으로 아무 것도하지 않는 여분의 "바쁜"상태를 많이 추가하는 것입니다. 그런 다음 RPC의 콜백을 사용하여 논리가 계속 될 수있는 다음 상태를 트리거합니다.
동기화 로직이 될 것입니다 :이 방법이 유효
void onUserClickedSync() {
rpc.downloadData(new AsyncCallback<Data> {
public void onSuccess(Data result) {
//...
onDownloaded();
}
//...
});
setState(WAITING_FOR_DOWNLOAD);
}
void onDownloaded() {
rpc.uploadData(new AsyncCallback<Void> {
public void onSuccess(Void void) {
//...
setState(DONE);
}
//...
});
setState(WAITING_FOR_UPLOAD);
}
인가? 내가 알아야 할게있어?
편집 : 내 예제가 의사 코드로 작성된 것은 매우 불분명했기 때문입니다.
실제 작업을 위임하려면 미안하지만 이해할 수 없습니다. 스레드, 또는 "4 아무 것도하지 않으면 ..."이라는 메시지가 나타날 때까지 기다려야합니다. –
OK, 약간 혼란 스러웠습니다. 그것을 제거했습니다. :) – vaughandroid
좋아, 그럼 3 단계 후에 무엇을합니까? 콜백이 외부에서 상태를 설정하기 위해 대기중인 통화 대기 루프를 입력 하시겠습니까? –