Как вызвать функцию из события выборки Javascript?

Я пытаюсь вызвать startTimer() внутри вызова Javascript fetch().then(), но он не проходит.

Как fetch() может увидеть функцию startTimer() и выполнить ее?

Это происходит даже тогда, когда я создаю пустую функцию test(), которая просто печатает в консоль, поэтому я знаю, что это не связано с кодом внутри функции startTimer().

<script>
        $(document).ready(function(){
            function startTimer(duration, display) {
                var timer = duration, minutes, seconds;
                const interval = setInterval(function () {
                    minutes = parseInt(timer / 60, 10);
                    seconds = parseInt(timer % 60, 10);
                    // minutes = minutes < 10 ? "0" + minutes : minutes;
                    seconds = seconds < 10 ? "0" + seconds : seconds;
                    display.textContent = minutes + ":" + seconds;
                    if (--timer < 0) {
                        clearInterval(interval);
                    }
                }, 1000);
            }
        });

        const form = document.querySelector('#data');
        form.addEventListener('submit', (event) => {
            event.preventDefault();

            var subject = $("#subject").val();
            var sender = $("#sender").val();
            var email = $("#email").val();

            fetch('', {
                method: 'POST',
                headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
                body: new URLSearchParams({
                    'csrfmiddlewaretoken': document.querySelector('[name=csrfmiddlewaretoken]').value,
                    'subject': subject,
                    'sender': sender,
                    'email': email
                })
            })
            .then(response => response.json())
            .then(data => {
                const filename = data.filename;
                const email = data.email;
                startTimer(60, document.querySelector('#timer'));
                var msg = `Your ${filename} was sent successfully to ${email}!`;
                alert(msg);
            })
            .catch(error => {
                alert('Sorry, something went wrong! Please refresh the page and try again.');
            });
        });
    </script>
Вернуться на верх