DevPrep

Все темы › Swift Concurrency (async/await, акторы)

Что такое async/await и какую проблему они решают?

Middle PRO

Суть

async/await — встроенная в язык модель асинхронности (Swift 5.5, iOS 15). Функция, помеченная async, может приостановиться в точке await, не блокируя поток: поток возвращается в пул и выполняет другую работу, а когда результат готов, функция продолжается с того же места. Код читается линейно, ошибки идут через обычный throws/try, а компилятор проверяет, что вы не забыли ни один колбэк и не вызвали его дважды.

Проблемы, которые это решает: «пирамида» вложенных completion-handler'ов, потерянные или двойные вызовы колбэков, ручная прокидка ошибок, невозможность статически проверить потокобезопасность.

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store