gpt4 book ai didi

java - 在 GWT 中,异步调用已经在进行中 如果我们现在刷新浏览器,该事件正在触发,但该过程尚未完成

转载 作者:行者123 更新时间:2023-12-01 12:47:53 26 4
gpt4 key购买 nike

在 GWT 中,异步调用已经在进行中,我将在完成此调用后触发一个事件。如果我们现在刷新浏览器,该事件正在触发,但该过程尚未完成,我该如何解决这个问题。请帮忙。

这是我正在使用的代码块:

 private void rpcMethod(final String nounToTrack, final ImportResultDTO importResult,         final String selectedNounName) {
service.checkNounImportExportStatus(nounToTrack, new AsyncCallback<String>() {
@Override
public void onFailure(final Throwable caught) {
if (caught instanceof StatusCodeException) {
eventBus.fireEvent(new CurrentNotificationChangedEvent(true));
} else {
caught.printStackTrace();
rpcToRemoveNounImportExportStatusAttribute(nounToTrack);
}
clearDataGridHeaders();
}

@Override
public void onSuccess(final String result) {

if (result.equals(BodDeskMessageConstants.COMPLETED) || result.contains(BodDeskMessageConstants.EXCEPTIONSTATUS)) {
if (result.contains(BodDeskMessageConstants.EXCEPTIONSTATUS)) {
eventBus.fireEvent(new CurrentNotificationChangedEvent(true));
} else {
log.info("new notification is occurring..... 3");
eventBus.fireEvent(new CurrentNotificationChangedEvent(true));
}
} else {
rpcToCheckNounImportExportStatus(nounToTrack, importResult, selectedNounName);
}
}
});
}

如果 rpc 调用失败/成功,我们将触发一个事件以查看可用的新通知。现在,我开始了这个 rpc 调用,我在 rpc 调用执行时刷新了浏览器。事件正在触发,但过程尚未完成。请建议如何限制事件的触发?

最佳答案

当您卸载页面时(刷新页面时也会发生这种情况),所有正在进行的请求都会中止,并且您会收到 StatusCodeException ,其 getStatusCode()0 (注意:无论中止请求的触发因素如何,您都会得到相同的行为:网络错误等)

然后,您可以检查 onFailure 中的状态代码,但如果您不希望状态代码 0 的其他情况出现误报,则必须监听 WindowClosingEvent 并在那里设置一个标志。只要确保在其他事件(例如成功响应或非 0 失败)时重新设置该标志,以防用户取消导航。

关于java - 在 GWT 中,异步调用已经在进行中 如果我们现在刷新浏览器,该事件正在触发,但该过程尚未完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24509721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com