CodeBlanks Logo Icon CodeBlanks

AsyncValue

AsyncValue ile async state modellemeyi öğrenirsin.

AsyncValue nedir?

AsyncValue, asenktron işlemlerin üç olası durumunu (data, loading, error) tek bir nesnede modelleyen sınıftır. AsyncValue.data(value), AsyncValue.loading() ve AsyncValue.error(err, stack) şeklinde oluşturulur. Bu sayede async state'i tek bir türle ifade edebilirsin.

final value = AsyncValue<int>.data(42);
value.when(
  data: (n) => print('Veri: $n'),
  loading: () => print('Yükleniyor'),
  error: (e, s) => print('Hata: $e'),
);

when metodu

when metodu üç callback alır: data, loading ve error. Hangi durumdaysa onun callback'ini çağırır. Bu, if-else ile durum kontrol etmekten daha güvenlidir çünkü tüm durumları işlemeyi zorlar ve kodu okunur hale getirir.

snapshot.when(
  data: (user) => Text(user.name),
  loading: () => CircularProgressIndicator(),
  error: (e, s) => Text('Hata: $e'),
);

Uygulama AsyncValue.when kullan

AsyncValue<int>.data(42) ile bir değer oluştur. when metoduyla data durumunda print(n), loading'de 'Yükleniyor', error'da 'Hata' yazdır.

Başlangıç kodu

main.dart
import 'package:flutter_riverpod/flutter_riverpod.dart';

void main() {
  // AsyncValue ile 42 değerini oluştur
  // when ile üç durumu işle
}

Örnek çözüm

main.dart
import 'package:flutter_riverpod/flutter_riverpod.dart';

void main() {
  final value = AsyncValue<int>.data(42);
  value.when(
    data: (n) => print(n),
    loading: () => print('Yükleniyor'),
    error: (e, s) => print('Hata'),
  );
}

Beklenen çıktı

42

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 AsyncValue'nin hangi metodu üç durumu da işlemeyi zorunlu kılar?

  • maybeWhen
  • fold
  • map
  • when Doğru cevap

Açıklama: when metodu data, loading ve error callback'lerini alır; üçünü de belirtmek beklenir.

2 AsyncValue data durumu

Soru
final value = AsyncValue<int>.____(42);
Cevap
final value = AsyncValue<int>.data(42);

Açıklama: data yapıcı metodu, başarılı sonucu tutan AsyncValue üretir.

3 AsyncValue durumları

Kavram Anlamı
AsyncValue.data Veri durumu
AsyncValue.loading Yükleme durumu
AsyncValue.error Hata durumu
when Üç durumu işler

İleri seviye bölümündeki tüm dersler