const delay = time => new Promise (resolve => setTimeout(resolve, time));
async function run() {
const results = [];
for (const domain of domains) {
await delay(3000);
results.push(await domainInfo(domain));
}
return results;
}
run().then(function(results) {
$.ajax({...})
});;
Для справки - Promise.all - запускает все промисы из переданного ему массива одновременно.
Uncaught TypeError: 9 is not a function - 9 это timeoutID который вернул ваш setTimeout, конечно же девятка это не функция.
И domainInfo должен возвращать промис.