Mobiludvikling med Flutter · Lektion

Asynkron programmering med Futures og async/await

Håndter forsinkede operationer i Dart og Flutter ved hjælp af Futures, async, await og fejlhåndtering.

Lektion 4 af 413 trin

Asynkron programmering med Futures og async/await er en gratis Mobiludvikling med Flutter-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Mobiludvikling med Flutter, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Mobiludvikling med Flutter-kurset indeholder 4 lektioner i alt.

Hvorfor asynkron programmering?

Apps henter data, læser filer og venter på timere. Blokering ville fryse brugergrænsefladen, så Dart bruger asynkron programmering for at forblive responsiv.

Typen Future

En Future er en værdi, der kommer senere. Den er enten ikke færdig, færdig med en værdi eller færdig med en fejl.

Future<String> fetchName() {
  return Future.delayed(
    Duration(seconds: 1),
    () => "Ada",
  );
}

async og await

Markér en funktion med async, og brug await til at vente, indtil en Future er færdig — asynkron kode, der læses oppefra og ned som almindelig kode.

Future<void> main() async {
  print("start");
  String name = await fetchName();
  print("Hello, " + name);
}

await suspenderer, men blokerer ikke

Det vigtigste er, at await suspenderer, men ikke blokerer. Hændelsesløkken fortsætter med at håndtere andet arbejde, så brugergrænsefladen forbliver responsiv.

Returnering af værdier

En async-funktion returnerer altid en Future. En almindelig return i funktionen færdiggør blot denne Future med værdien.

Future<int> doubleIt(int x) async {
  return x * 2;  // becomes Future<int>
}

Håndtering af fejl

Indlejr kald med await i try/catch for at håndtere fejl — præcis som når du fanger synkrone undtagelser.

try {
  var data = await fetchData();
} catch (e) {
  print("Failed: " + e.toString());
}

Kædning med then

Uden async/await knytter du tilbagekald til med then og catchError. Async/await er tydeligere, men kompileres til den samme idé.

fetchName()
    .then((n) => print(n))
    .catchError((e) => print("error"));

Kørsel parallelt

Brug Future.wait til at starte flere Futures på én gang og vente på dem samlet — det er hurtigere end at vente på dem én efter én.

var results = await Future.wait([
  fetchA(),
  fetchB(),
]);

FutureBuilder i Flutter

Widgetten FutureBuilder genopbygger din brugergrænseflade, når en Future går fra indlæsning til færdig — så du kan vise indlæsningsindikatorer og resultater deklarativt.

FutureBuilder<String>(
  future: fetchName(),
  builder: (context, snapshot) {
    if (!snapshot.hasData) return CircularProgressIndicator();
    return Text(snapshot.data!);
  },
)

Streams: Mange værdier

En Future leverer én værdi, mens en Stream leverer mange over tid. Lyt med await for eller en StreamBuilder.

Stream<int> counter() async* {
  for (var i = 0; i < 3; i++) {
    yield i;
  }
}

Sæt det hele sammen

Sæt det hele sammen: Futures til resultater, der kun kommer én gang, async/await til overskuelig kode, try/catch til fejl og FutureBuilder til at knytte asynkrone data til widgets.

Hurtigt tjek

Et hurtigt tjek af Darts Future og async/await, før du går videre.

Opsummering

Nu har du styr på asynkron programmering i Dart: Future til senere værdier, async/await til læsbar kode, try/catch til fejl samt Future.wait og FutureBuilder.

Gratis at komme i gang

Lær Dart med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
22
Lektioner
88

Ofte stillede spørgsmål

Er lektionen “Asynkron programmering med Futures og async/await” gratis?

Ja — hele teksten til “Asynkron programmering med Futures og async/await” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Mobiludvikling med Flutter-kurset, skal du opgradere til CoddyKit PRO. Mobiludvikling med Flutter-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Asynkron programmering med Futures og async/await”?

Håndter forsinkede operationer i Dart og Flutter ved hjælp af Futures, async, await og fejlhåndtering. Du øver dig i Mobiludvikling med Flutter med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Mobiludvikling med Flutter?

Der kræves ingen tidligere erfaring. Mobiludvikling med Flutter på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Asynkron programmering med Futures og async/await”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Mobiludvikling med Flutter-lektion?

Ja. Alle Mobiludvikling med Flutter-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Flutter-økosystemet og opsætning
  2. Grundlæggende Dart til Flutter
  3. Opbygning af Deres første Flutter-app
  4. Asynkron programmering med Futures og async/await
← Tilbage til Mobiludvikling med Flutter