AJAX работает в цикле for - функция обратного вызова после цикла for - PullRequest
0 голосов
/ 12 марта 2019

Итак, у меня есть функция, которая выполняет вызов ajax в цикле for. Мне нужно перезвонить другой функции, когда весь цикл для сделано. Поскольку вызовы ajax выполняются асинхронно, я не могу вызвать следующую функцию после завершения цикла for.
Вот мой код:

for(let i=0; i< industryArray.length; i++){
        $.ajax({
            url: myurl + "_api/web/lists/GetByTitle('library')/items",
            method: "GET",
            headers: { "Accept": "application/json; odata=verbose" },
            success: function (data) {
                RejectedSalesCount += data.d.results.length;
            },
            error: function (data) {
            }
        })
}

// Need to call myfunction() here

myfunction() вызывается еще до выполнения вызовов ajax. Спасибо!

Ответы [ 2 ]

0 голосов
/ 12 марта 2019

Установить ajax asyc состояние false, тогда оно будет работать

Это пример примера установки ajax asyc false

$.ajax({
    url : "/submit/checkuser/",
    type : "get",
    async: false,
    success : function(userStatus) {
       if (userStatus == 'Disabled') { // check if user if disabled                    
       } else if (userStatus == 'Deleted') { // check if user if deleted
       } else {
       };
    },
    error: function() {
       connectionError();
    }
 });

Сейчас он ожидает выполнения функции и перемещения вследующая строка

0 голосов
/ 12 марта 2019
var pendingRequests=0;
for(let i=0; i< industryArray.length; i++){
    if (condition) {
        pendingRequests++;
        $.ajax({
            url: myurl + "_api/web/lists/GetByTitle('library')/items",
            method: "GET",
            headers: { "Accept": "application/json; odata=verbose" },
            success: function (data) {
                RejectedSalesCount += data.d.results.length;
                pendingRequests--;
                if(pendingRequests===0) {
                    otherFunction()
                }
            },
            error: function (data) {
              doSomethingWithError(data)
            }
        })
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...