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

标签 java angularjs spring spring-mvc

我对 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/

相关文章:

java - 如何在 GUI 中向数组添加值

javascript - 循环遍历具有相似类的元素

java - Citrix Xenapp 6.5 下 Java 中的当前日期/时间

c# - C# 和 java write() 之间的区别

javascript - 错误 : [ng:areq] from angular controller

java - 使用 Selenium 测试 Angularjs 应用程序

java - 将jdbctemplate与spring一起使用时,我应该有一个基类吗?

java - Spring @Bean autowire() - 第二次失败(?)

java - Spring 模型对象

java - 不在 Top Java 上保持专注