ожидание финиша ajax loop - PullRequest
0 голосов
/ 30 июня 2019

У меня есть вызов ajax внутри цикла:

$.each(chunkedImages, function(index, image) {
    $.ajax({
        type: 'POST',
        url: url,
        data: {images: image, key: key},
    }).success(function( data ) {
        countConvertedImages += data;

        if( index === chunkedImages.length-1 ) {
            console.log( countConvertedImages );
        }
    });

});

Моя проблема в том, что переменная countConvertedImages не актуальна. Там по какой-то причине нет правильного значения внутри. Я думаю, что это связано с порядком вызовов ajax, потому что они могут быть не закончены.

Как вывести что-то после завершения всех вызовов ajax?

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

Спасибо за ссылку: Как мне вернуть ответ на асинхронный вызов?

Что приводит меня к правильному решению для меня, используя .ajaxStop ()

$(document).one("ajaxStop", function() {
    ...
});

был путь для меня: https://api.jquery.com/ajaxStop/

0 голосов
/ 30 июня 2019

Используйте $. При упоминании ниже

 $.when(
                $.each(chunkedImages, function (index, image) {
                    $.ajax({
                        type: 'POST',
                        url: url,
                        data: { images: image, key: key },
                        success: function (data) {
                            countConvertedImages += data;
                            if (index === chunkedImages.length - 1) {
                                console.log(countConvertedImages);
                            }
                        }
                    })
                })
            ).done(function () {
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...