Почему событие клика встаёт в очередь?

Наткнулся на странное поведение формы. Когда я нажимаю на кнопку у меня запускается лоадер и отправляю данные на сервер. Пока у меня лоадер активен я не отправляю данные повторно. Странное поведение выражается в том , что когда я второй раз нажимаю на кнопку он сразу не посылает запрос, а ждёт пока отправится первый запрос и вызывает отправку второго. Он типа в очередь встаёт (очередь не бывает больше одного). Я даже вешал на кнопку pointer-events: none на время отправки, не помогло..
Почему так происходит?

const createThanksHandler = async () => {
    setIsLoading(true);

    if(isLoading) return;

    if(!valid()) {
        setIsLoading(false);
        return;
    }

    const { data } = await sayThanks(method, url, formData);

    if(data.responseCode === 0) {
        if(setNewThanks) setNewThanks(data.response);

        dispatch(NotificationHelper('Ваше спасибо отправлено', data.responseCode));
        setIsLoading(false);
    } else {
        dispatch(NotificationHelper(data.errorMessage, data.responseCode));
        setIsLoading(false);
    }
};

<Button
    className="thanks-create-form__submit"
    type="primary"
    handler={createThanksHandler}
>
    Сказать спасибо
    {isLoading && <Loader type="white" />}
</Button>
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы