Sobes.tech
Junior — Middle

Használható az async/await szerkezet egy másik metóduson belül?

sobes.tech MI

Válasz az MI-től

Swift (iOS) környezetben az async/await konstrukciót az aszinkron kód kezelésére használják. A metódus, amelyben használni szeretnéd az await-et, async-ként kell legyen deklarálva.

Nem lehet egyszerűen az await-et hívni egy normál (szinkron) módszerben anélkül, hogy azt async-ként deklarálnád. Azonban, egy másik aszinkron módszerben hívhatsz meg aszinkron módszert.

Példa:

func fetchData() async -> String {
    // aszinkron művelet
    return "data"
}

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

Ha szinkron módszerből szeretnéd hívni az aszinkron kódot, használhatod a Task-ot:

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