Джун боится, что await на главном акторе заморозит экран на время запроса
@MainActor
final class ProfileViewModel: ObservableObject {
@Published var profile: Profile?
func load() async {
profile = try? await api.profile() // запрос идёт 2 секунды
}
}
Что происходит с главным потоком эти 2 секунды?
- Свободен: задача приостановлена до ответа
- Заблокирован: код на главном акторе ждёт
- Заблокирован, если нет DispatchQueue.global
- Свободен, только если запрос через Alamofire
