我正在为我的项目开发搜索功能。一旦用户在搜索栏中输入任何内容,在搜索文本发生任何更改时,我将向后端发送文本进行验证,并接收响应(文本是否存在错误):
this.searchBar.on('change', () => {
http.post('api_link', {searchText:
this.serachBar.searchText}).subscribe(resp => {
this.resp = resp['Result'];
});
})
现在,当用户不断在搜索栏中输入时,多个验证响应通过后端进入。然而,在任何新更改中,只有最新的订阅是有效的,并且对 API 的任何先前调用都是无效的。
是否有任何方法可以在对 subscribe 的任何新调用上取消之前的订阅?
注意:等待所有响应似乎是可能的,但我还会在搜索栏下方显示响应(同时显示一个加载器)。因此,我希望加载器保持加载状态,直到最新的响应可用为止,而不是在各种响应状态之间转换。
unsubscribe()
。这样旧的HTTP请求将被取消,只有最新的“subscription”将有效。 - Yousef khan