我使用ES6 Promise来管理我的所有网络数据获取,但有些情况下我需要强制取消它们。
基本上场景是这样的:我在UI上使用了一个自动完成搜索功能,该请求被委托给后端进行搜索。虽然这个网络请求(#1)可能需要一点时间,但用户继续输入,最终触发了另一个后端调用(#2)。
在这里,#2自然优先于#1,因此我想取消Promise封装的#1请求。我已经在数据层中有了所有Promise的缓存,因此理论上,当我尝试提交#2的Promise时,可以检索到#1的Promise。
但是,我如何取消从缓存中检索出来的Promise #1呢?
有人能提供一种方法吗?
基本上场景是这样的:我在UI上使用了一个自动完成搜索功能,该请求被委托给后端进行搜索。虽然这个网络请求(#1)可能需要一点时间,但用户继续输入,最终触发了另一个后端调用(#2)。
在这里,#2自然优先于#1,因此我想取消Promise封装的#1请求。我已经在数据层中有了所有Promise的缓存,因此理论上,当我尝试提交#2的Promise时,可以检索到#1的Promise。
但是,我如何取消从缓存中检索出来的Promise #1呢?
有人能提供一种方法吗?
.catch(_=>_)
附加到代码中以避免未来可能出现的未捕获Promise错误,这样做有什么问题吗?它会在虚空中悬浮吗? - Redu