fix: resolves useRquest debounce issue #2606
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
[English Template / 英文模板]
🤔 这个变动的性质是?
🔗 相关 Issue
useRequest的debounceLeading和ready结合使用时不生效
💡 需求背景和解决方案
需求背景
useRequest的debounceLeading和ready结合使用时不生效
解决方案

①问题定位,核心原因是在useRequest在mount的时候,只会通过判断manual决定是否执行第一次:
因此,会在mount时,执行一次debounce的request动作,导致在debounceWait的时间里都无法执行。如果上面这个codebox的demo把debounceWait时间改成10s,将更容易复现。
②但是为什么执行了会不生效呢?也就是没有loading,也不会出现结果:

因为在这里第一次runASync时,拿到的回调至stopNow会根据ready设置为true,因此实际上是首次执行了一次方法,但这个方法被终止,但是debounceWait的效果还在。
③如何修复:

在useRequest Mount的地方加上ready的判断,和stopNow判断保持一致。
修复Demo仓库
📝 更新日志
☑️ 请求合并前的自查清单