Показать сообщение отдельно
  #2 (permalink)  
Старый 05.08.2020, 08:54
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,707

Если цикл должен продолжаться независимо от ошибок, по-простому, сильно не переделывая можно так с использованием Promise

const ajaxloop = (arr) => { 
	let prom = Promise.resolve(true)
	for (const el of arr) {
		const tableName = el.dataset.table;
		prom = prom.then ( _ =>  return new Promise (res => {
				$.request('onAjax', {
					data: {
						'table': tableName
					},
					success: function(data) {
							// ответ сервера об успешном выполнении запроса
					},
					error: function(data) {
							// ответ об ошибке
					},
					complete: function(data) {
							// выполнится независимо от успешного запроса или ошибки
						res()  // Тут промис разрешился
					}
				});
			})
		)
	}
       return prom
}


Вызываем все это так

loader.classList.remove('hide');
ajaxloop (arr)
  .then (_ => loader.classList.add('hide');) // что то там гасим, когда все вызовы закончатся.
Ответить с цитированием