CodeBlanks Logo Icon CodeBlanks

Future

Future ile asenkron işlemi öğrenirsin.

Future

Future<T> Dart'ta zaman uyumsuz bir sonuçu temsil eder. Bir işlem henüz tamamlanmadıysa Future beklemede (pending) durumundadır; tamamlandığında bir değer üretir veya hata fırlatır.

Örnek: var f = Future.value(42);. Bu, 42 değeriyle tamamlanmış bir Future üretir. Sonucu almak için await kullanırsın: var result = await f;. await Future tamamlanana kadar bekler.

Future, ağ isteği, dosya okuma, zamanlayıcı gibi işlemlerde kullanılır. Ana iş parçacığını bloklamadan uzun işlemleri yönetmenin yoludur.

Future.value ve await

Future.value(deger) zaten tamamlanmış bir Future üretir. Bu, test ve öğretim için yararlıdır; gerçek uygulamada Future.delayed gibi gecikmeli işlemler kullanılır.

Sonucu almak için await anahtar kelimesi kullanılır. await yalnızca async işaretli fonksiyonlarda çalışır. void main() async yazarak main'i async yaparsın.

Örnek: void main() async { var f = Future.value(42); var r = await f; print(r); }. Çıktı: 42. await Future tamamlanana kadar bekler, sonra devam eder.

Uygulama Future değerini yazdır

void main() async yaz. Future.value(42) ile bir Future oluştur. await ile sonuçu bekle ve bir değişkene ata. Sonucu print ile yazdır.

Başlangıç kodu

main.dart
void main() async {
  // Future ile 42 değeri üret
  // bekleyip sonuçu yazdır
}

Örnek çözüm

main.dart
void main() async {
  var f = Future.value(42);
  var r = await f;
  print(r);
}

Beklenen çıktı

42

Soru ve cevaplar

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

1 Future ne zaman tamamlanır?

main.dart
var f = Future.value(42);
  • Yalnızca hata durumunda
  • Değer ürettiğinde veya hata fırlattığında Doğru cevap
  • Asla tamamlanmaz
  • Yalnızca print ile

Açıklama: Future bir değer ürettiğinde veya hata fırlattığında tamamlanır.

2 Future oluşturma

Soru
var f = ____.value(42);
Cevap
var f = Future.value(42);

Açıklama: Future.value ile tamamlanmış Future üretilir.

3 Future parçalarını eşleştir

Kavram Anlamı
Future.value(42) Tamamlanmış Future
await f Bekleme
var r = await f Sonucu alma
print(r) Yazdırma

Orta seviye bölümündeki tüm dersler