Java 取消请求时取消REST服务
我有一个angular UI的代码片段,当用户在字段中键入字母时,它将调用myService.getNames()。每当用户在字段中键入另一个字母时,switchMap将取消上一个请求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=。检索名称列表的查询需要一些时间才能
.pipe(
debounceTime(500),
switchMap(value => this.myService.getNames(value))
)
此服务将调用REST端点http://localhost:8080/listing?value=
。检索名称列表的查询需要一些时间才能完成。如果用户编辑该字段3次,将有2个已取消的请求和1个正在进行的请求
在服务器端,如何取消之前运行的两个查询?或者它们会被自动取消吗?您不能在服务器端取消请求。解决方案可能采用更复杂的算法,如:
- 每个请求都被放入队列并立即返回,而不是等待处理完成(存储在数据库中等)
- 如果来自同一用户的新项目存在,则队列替换以前的项目
- 客户端通过web套接字从服务器订阅更新
或任何其他方法。您不能在服务器端取消请求。解决方案可能采用更复杂的算法,如:
- 每个请求都被放入队列并立即返回,而不是等待处理完成(存储在数据库中等)
- 如果来自同一用户的新项目存在,则队列替换以前的项目
- 客户端通过web套接字从服务器订阅更新
或任何其他方法。我有ame问题。我可以取消角度前端内的请求,但我在节点服务器上放置了一些指示器,似乎“已取消”的请求根本没有被取消。只有用户界面不希望从他们这边得到任何响应。你有什么解决办法吗?我有这个问题。我可以取消角度前端内的请求,但我在节点服务器上放置了一些指示器,似乎“已取消”的请求根本没有被取消。只有用户界面不希望从他们这边得到任何响应。你有什么解决办法吗?