Sobes.tech
Junior — Middle

Czy można używać konstrukcji async/await wewnątrz metody innej metody?

sobes.tech AI

Odpowiedź od AI

W Swift (iOS) konstrukcja async/await jest używana do pracy z kodem asynchronicznym. Metoda, w której chcesz użyć await, musi być zadeklarowana jako async.

Nie można po prostu wywołać await w zwykłej (synchronizowanej) metodzie bez zadeklarowania jej jako async. Jednak można wywołać metodę asynchroniczną wewnątrz innej metody asynchronicznej.

Przykład:

func fetchData() async -> String {
    // operacja asynchroniczna
    return "data"
}

func process() async {
    let data = await fetchData()
    print(data)
}

Jeśli chcesz wywołać kod asynchroniczny z metody synchronicznej, możesz użyć Task:

func syncMethod() {
    Task {
        let data = await fetchData()
        print(data)
    }
}