Swift Academy · Lektion

Syntax för async/await och anrop av asynkrona funktioner

Skriv och anropa asynkrona funktioner och förstå suspenderingspunkter.

Lektion 1 av 412 steg

Syntax för async/await och anrop av asynkrona funktioner är en gratis lektion i Swift Academy på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Swift Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Swift Academy innehåller totalt 4 lektioner.

Välkommen

Swifts async/await-syntax gör att asynkron kod kan läsas som synkron kod. `async` markerar en funktion som kan pausas; `await` markerar en pauspunkt.

async-funktion

```swift func fetchUser(id: Int) async throws -> User { let url = URL(string: "https://api.example.com/users/\(id)")! let (data, _) = try await URLSession.shared.data(from: url) return try JSONDecoder().decode(User.self, from: data) } ```

Anropa med await

```swift Task { let user = try await fetchUser(id: 42) print(user.name) } ```

Pauspunkter

`await` är en pauspunkt – funktionen pausas här och lämnar tillbaka tråden till systemet. När den asynkrona åtgärden är klar fortsätter körningen.

async på MainActor

```swift @MainActor func updateUI() async { let data = try? await fetchData() label.text = data?.description ?? "Error" } ```

Överbrygga callbacks till async

```swift func fetchAsync() async throws -> Data { try await withCheckedThrowingContinuation { cont in URLSession.shared.dataTask(with: url) { data, _, error in if let data { cont.resume(returning: data) } else { cont.resume(throwing: error!) } }.resume() } } ```

Felhantering med try await

```swift do { let user = try await fetchUser(id: 1) render(user) } catch URLError.notConnectedToInternet { showOfflineMessage() } catch { showError(error) } ```

await i for-loopar

```swift for id in userIds { let user = try await fetchUser(id: id) // sequential process(user) } ``` Detta hämtar en användare i taget. Använd async let om du vill hämta samtidigt.

Returnera värden

```swift func sum(a: Int, b: Int) async -> Int { await Task.sleep(nanoseconds: 1_000_000) return a + b } let result = await sum(a: 3, b: 4) // 7 ```

Asynkrona egenskaper

```swift var thumbnail: UIImage { get async { try! await loadImage(url: imageURL) } } let img = await post.thumbnail ```

Snabbtest

Vad betyder `await` vid en pauspunkt?

Sammanfattning

Viktiga punkter: • `async` — markerar en funktion som kan pausas • `await` — pauspunkt; tråden frigörs medan programmet väntar • `try await` för asynkrona funktioner som kan kasta fel • `@MainActor` för UI-arbete • `withCheckedThrowingContinuation` överbryggar callbacks Nästa avsnitt: Task och avbrytning.
Gratis att börja

Lär dig Swift med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
122
Lektioner
409

Vanliga frågor

Är lektionen ”Syntax för async/await och anrop av asynkrona funktioner” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Swift Academy, inklusive ”Syntax för async/await och anrop av asynkrona funktioner”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Swift Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Syntax för async/await och anrop av asynkrona funktioner”?

Skriv och anropa asynkrona funktioner och förstå suspenderingspunkter. Ni övar på Swift Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Swift Academy?

Du behöver inga förkunskaper. Utbildningen i Swift Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Syntax för async/await och anrop av asynkrona funktioner”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Swift Academy-lektionen?

Ja. Varje Swift Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Syntax för async/await och anrop av asynkrona funktioner
  2. Task och Task Cancellation
  3. async let och samtidiga child tasks
  4. Actors: skydda delat muterbart tillstånd
← Tillbaka till Swift Academy