![](/img/trans.png)
[英]Spring MVC InterceptorHandler called twice with DeferredResult
[英]How deferredresult of Spring MVC is sent back to client(angular js)
我是Spring MVC和AngularJS的新手。 该应用程序基本上在两个数据库实例中的选定表之间进行同步。 调用sync时,在服务器端调用以下服务,如下所示:
@RequestMapping(value = "configversion/{srcConfVersionId}/sync", method = RequestMethod.POST)
@ModelAttribute(DEFAULT_MODEL_ATTR_NAME)
@ResponseBody
public CustomResponse syncConfigurations(@PathVariable Long srcConfVersionId, @RequestBody SyncDTO dto) {
Date processingTime = new Date();
dto.setSrcConfVersionId(srcConfVersionId);
DeferredResult<Object> deferredResult = new DeferredResult<>();
SyncProcessingTask task = new SyncProcessingTask( dataSyncService, deferredResult, srcConfVersionId, dto);
Timer timer = new Timer();
timer.schedule(task, processingTime);
return new CustomResponse(deferredResult);
}
据我所知, DeferredResult
用于异步处理,将来可以读取结果。
单击同步按钮后,从前端侧进入新页面,列出同步结果。 当服务器在后台继续时,客户端显示“In Progess”状态。 现在问题是如何检查DeferredResult
是否从AngularJS方面改变了?
您需要使用DeferredResult的回调方法。 实施以下内容。
DeferredResult.onCompletion(Runnable callback);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.