【发布时间】:2023-04-01 13:54:01
【问题描述】:
我有一个反应组件,它有一个自动完成功能,当用户输入超过 3 个字符时会调用 onSearch。
一旦发生这种情况,将调用 Util 文件 (Requests.js) 中的函数并返回 axios 承诺,其中包含从这 3 个字符中搜索到的数据。
有时我需要根据过滤需要多次调用此函数,因此我需要循环多次并创建 axios 承诺数组。
然后我 promise.all 并在自动完成中显示结果。
我的问题是,如果用户输入“tes”,则过程开始可能需要一段时间才能完成,具体取决于他们的搜索词(这很好)。如果他们然后键入添加一个“t”(在去抖动窗口之后)并使搜索词“test”启动另一个进程,但它是同步的,并等待“tes”进程完成,然后再开始、完成和显示。
显然第一次调用 onSearch 时它需要启动,但是如果调用任何后续的 onSearches 我如何取消之前的 Promise.all?
【问题讨论】:
标签: reactjs axios es6-promise