gpt4 book ai didi

java - Spring MVC的deferredresult如何发送回客户端(Angular JS)

转载 作者:太空宇宙 更新时间:2023-11-04 12:37:35 25 4
gpt4 key购买 nike

我对 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 用于异步进程,将来可以读取结果。

从前端侧单击同步按钮后,它将进入新页面,其中列出了同步结果。当服务器在后台继续运行时,客户端显示“正在进行”状态。现在的问题是我如何检查 DeferredResult 是否从 AngularJS 端更改?

最佳答案

需要使用DeferredResult的回调方法。实现以下内容。

DeferredResult.onCompletion(Runnable callback);

关于java - Spring MVC的deferredresult如何发送回客户端(Angular JS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37157998/

25 4 0