Два асинхронных Ajax запроса

Рейтинг: 0Ответов: 0Опубликовано: 20.01.2023

Все привет! Есть длительный Ajax запрос (номер 1):

                        $.ajax({
                            url: '/office/start-import-yml',
                            type: 'POST',
                            dataType: 'JSON',
                            async : true,
                            data: {
                                id: <?= $id ?>,
                                YII_CSRF_TOKEN: app.csrfToken
                            },
                            beforeSend: function() {
                                console.log('Start import function startImportXML()');
                            },
                            success: function(data) {
                                console.log(data);
                            },
                            error: function(e) {
                                console.log(e);
                            },
                            complete: function() {
                            
                            }
                        })

и есть Ajax запрос (номер 2) который каждые 2 сек. делает запрос с целью определить прогресс загрузки:

            let timerId = setTimeout(function tick() {
            var message = '';
            $.ajax({
                url: '/office/get-progress-import/id/<?= $id ?>',
                type: 'GET',
                dataType: 'JSON',
                async : true,
                data: {
                    YII_CSRF_TOKEN: app.csrfToken
                },
                beforeSend: function() {},
                success: function(data) {
                    if (data.message.progress > 0) {
                        var message = 'Выполенно: ' + data.message.progress + '%; Всего товаров: ' + data.message.offer_count + '; Импортированно: ' + data.message.import_count + '; Пропущено: ' + data.message.skip_count;
                        console.log(message);
                        $('#progressImportYML').html(message);
                    }
                },
                error: function(e) {
                    console.log(e);
                },
                complete: function() {}
            });

            timerId = setTimeout(tick, 2000);
        }, 2000);

Запрос номер 1 получает статус pending т.к. длительный, а запросы номер 2 отправляется и все они тоже получают статус pending и я не получаю от них ответа. Вопрос: Как сделать так, чтобы запросы 2 не получали статус pending и выдавали ответ ?

Ответы

Ответов пока нет.