Я хотел бы перебрать список асинхронных вызовов, но каждая итерация цикла ожидает, что предыдущая итерация завершит выполнение перед запуском следующего. Как я могу это достичь?
Вы можете сохранить результат и статус вызовов в списке. Всякий раз, когда вызов завершается, он отмечает свой статус COMPLETE в списке состояний и сохраняет его результат в списке результатов.
В конце каждого вызова проверьте, завершен ли статус всех вызовов или нет. Если оно завершено, вы можете вызвать свою подпрограмму для прокрутки списка результатов вызовов.