[英]Sending Latest http Request when previous call finishes in Angular
我正在尝试完成以下任务:
我有一个请求表,其中包含 4 个字段(A、B、C、D)用于更新票证。 每当用户退出某个字段(在输入某些内容后)时,都应向服务器发送请求以更新该票证。 但是,想象一下以下场景:
在这种情况下,我只想将最新的调用(字段 C 的更新)发送到服务器,而不是在 A 的回复完成之前发送。 我试图在下面说明这一点。
我已经阅读了几个关于去抖动和节流的地方,但我似乎无法围绕完美的解决方案,因为这首先不是基于时间,其次它不应该忽略当前正在进行的事件,这似乎排除了两者他们。
我考虑过实现一种只为一个项目提供空间的缓冲区,但我认为必须有一个更好的解决方案。
非常感谢任何输入,谢谢!
看起来您需要switchmap
映射运算符。 每次您的输入 observable 发出新数据时, Switchmap
都会用新的请求 observable 替换当前请求。 发生这种情况时,第一个请求将被取消。
const requestObservable$ = inputObservable$.pipe(
switchmap(yourInputData => this.http.post("...url",yourInputData))
);
requestObservable$.subscribe(response => console.log(response));
requestObservable$
将响应最新数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.