Java 取消请求时取消REST服务

Java 取消请求时取消REST服务,java,rest,Java,Rest,我有一个angular UI的代码片段,当用户在字段中键入字母时,它将调用myService.getNames()。每当用户在字段中键入另一个字母时,switchMap将取消上一个请求 .pipe( debounceTime(500), switchMap(value => this.myService.getNames(value)) ) 此服务将调用REST端点http://localhost:8080/listing?value=。检索名称列表的查询需要一些时间才能

我有一个angular UI的代码片段,当用户在字段中键入字母时,它将调用myService.getNames()。每当用户在字段中键入另一个字母时,switchMap将取消上一个请求

.pipe(
    debounceTime(500),
    switchMap(value => this.myService.getNames(value))
)
此服务将调用REST端点
http://localhost:8080/listing?value=
。检索名称列表的查询需要一些时间才能完成。如果用户编辑该字段3次,将有2个已取消的请求和1个正在进行的请求


在服务器端,如何取消之前运行的两个查询?或者它们会被自动取消吗?

您不能在服务器端取消请求。解决方案可能采用更复杂的算法,如:

  • 每个请求都被放入队列并立即返回,而不是等待处理完成(存储在数据库中等)
  • 如果来自同一用户的新项目存在,则队列替换以前的项目
  • 客户端通过web套接字从服务器订阅更新

或任何其他方法。

您不能在服务器端取消请求。解决方案可能采用更复杂的算法,如:

  • 每个请求都被放入队列并立即返回,而不是等待处理完成(存储在数据库中等)
  • 如果来自同一用户的新项目存在,则队列替换以前的项目
  • 客户端通过web套接字从服务器订阅更新

或任何其他方法。

我有ame问题。我可以取消角度前端内的请求,但我在节点服务器上放置了一些指示器,似乎“已取消”的请求根本没有被取消。只有用户界面不希望从他们这边得到任何响应。你有什么解决办法吗?我有这个问题。我可以取消角度前端内的请求,但我在节点服务器上放置了一些指示器,似乎“已取消”的请求根本没有被取消。只有用户界面不希望从他们这边得到任何响应。你有什么解决办法吗?