Задать вопрос
@lexstile

Как правильно совместить debounce и cancel token?

Есть вариант с cancel token, который работает:
useEffect(() => {
    const asyncEnrollment = async () => {
      const data = { userId, filter };
      setLoading(true);
      await initialEnrollment(dispatch, data);
      setLoading(false);
    };

    asyncEnrollment();
  }, [dispatch, userId, filter]);

Есть вариант с debounce, который тоже работает, но не работает cancel token:
const loadEnrollment = useRef(
  debounce(async (data) => {
    setLoading(true);
    await initialEnrollment(dispatch, data);
    setLoading(false);
  }, 4000)
);

useEffect(() => {
  const data = { userId, filter };
  loadEnrollment.current(data);
}, [userId, filter]);

По отдельности работают, вместе - нет.
Как их совместить?
  • Вопрос задан
  • 46 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽