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