Сначала вам нужно создать отклоненную функцию и вызывать эту функцию вместо searchProductsCall
.
Следующий код должен убедиться, что первая отправка вызывается сразу во всех случаях (возможно, это изменяет интерфейс пользователя)?) и что он вызывает searchProductsCall
только после отладки и при наличии непустого запроса.
export const debouncedSearchProductsCall = _.debounce((query, dispatch) => {
if (query !== "") {
searchProductsCall(query).then(payload => {
dispatch({ type: SOME_OTHER_TYPE, payload })
});
}
}, 200);
export const onSearchChange = query => dispatch => {
dispatch({ type: SOME_TYPE, payload: query });
debouncedSearchProductsCall(query, dispatch);
}