function funcGo(...)
{
return new Promise(function(resolve)
{
if(canAsync())
{
onAsync().then(function()
{
resolve(funcAsync(...));
});
}
else
{
resolve(funcSync(...));
}
}
}
setTimeout(function()
{
resolve(funcGo(...));
}, 0);
// Начало цепочки
let chain = Promise.resolve();
ar.forEach(function(a, i)
{
chain = chain.then(function()
{
return new Promise(function(resolve)
{
setTimeout(function()
{
//Тут выводим, что i-й промис запущен
$(selector + i).text('Запущен ' + i);
resolve(funcGo(a, ...));
}, 0);
});
})
.then(function(result)
{
//Тут выводим, что i-й промис обработан
$(selector + i).text('Обработан ' + i);
})
.catch(function(error)
{
return Promise.reject(error);
});
});
$("#test_modal .modal-body").append($("<div id='test_id' + i>Поле" + i + "<span></span></div>"))
(в span будет динамически вводится некое значение, как результат работы асинхронной функции).$("#test_modal").modal("show")
$("#test_id" + i + " span").text(result)
, где i грубо говоря порядковый номер функции