🚀 async let или TaskGroup: выбираем по числу задач

🧵 Правило простое: посчитай задачи. async let — когда их фиксированное, известное на этапе компиляции количество. Две-три параллельные загрузки, ждём всё разом, минимум церемоний. TaskGroup — когда количество приходит из данных: цикл по массиву, результаты забираем по мере готовности, есть cancelAll(), ранний выход и троттлинг.

⚠️ Уточнение, которое часто перевирают: «если одна задача бросила ошибку, вторая отменится автоматически» — не совсем так. Отмена случается при выходе из скоупа (любом, включая throw), и она кооперативная: дочерняя задача продолжит работать, пока сама не проверит отмену.

💡 С Swift 6.1 (SE-0442) можно не писать of: — но вывод типа идёт сверху вниз, поэтому первым обращением к group должен быть addTask, и все дочерние задачи должны возвращать один тип.

#Swift #SwiftLang #iOS #SwiftConcurrency #AsyncAwait

🚀 async let или TaskGroup: выбираем по числу задач | Сетка — социальная сеть от hh.ru