首页 > 解决方案 > 如何使用 Redux Saga debounce 但先获取而不是等待 n 毫秒

问题描述

有没有办法在redux-saga例如 5 秒内只获取一次?

我知道有 debounce 功能:

yield debounce(5000, 'SAMPLE_ACTION', actionToFetchFirst)

但我想要的是它先获取而不是等待 5 秒进行初始获取

标签: javascriptreactjsreduxreact-reduxredux-saga

解决方案


我想要的是它先获取而不是等待 5 秒进行初始获取

您可以leading=truelodash.debounce选项中指定:

lodash.debounce(func, [wait=0], [options={}])

[options.leading=false](布尔值):指定在超时的前沿调用。

lodash.debounce(5000, 'SAMPLE_ACTION', { leading: true });

或者只是添加一个条件,例如:

if (input.length > 1) fetchDebounced();
else fetch();

推荐阅读