CodeBlanks Logo Icon CodeBlanks

then

.then ile Future zincirleme öğrenirsin.

then

Bir Future tamamlandığında ne yapılacağını .then ile belirtirsin. .then bir geri çağrı (callback) alır; Future değerle tamamlandığında bu çağrı çalışır ve değeri alır. Future.value(5).then((v) => print(v));.

Birden çok .then zincirlenebilir; her biri bir sonrakının girdisi olur. Future.value(5).then((v) => v * 2).then((v) => print(v)); sonuçu 10 yazdırır. Bu, bir veriyi adım adım dönüştürmenin deyimsel yoludur. async/await daha okunur olsa da, .then hala çok kullanılır; özellikle kısa zincirlerde.

Zincirleme then

Birden çok .then çağrısı yan yana yazıldığında bir zincir oluşur. İlk .then Future'ın değerini alır, dönüş değeri bir sonraki .then'e geçer. Bu, ardışık dönüştürmeler için idealdir.

Örnek: Future.value(3).then((v) => v + 1).then((v) => v * 10).then((v) => print(v));. Çıktı 40'tır. Her .then yeni bir Future döndürür; bu yüzden zincir bir Future'lar serisidir. Bir adımda hata fırlatılırsa, zincirin geri kalı atlanır ve .catchError'a gider. Hata yönetimini bir sonraki derste göreceğiz.

Uygulama Sıra sende: then zinciri

Future.value(5) ile başla. .then((v) => v * 2) ile değeri ikiye katla, sonra .then((v) => print(v)) ile yazdır. Böylece iki adımlı bir then zinciri kurarsın.

Başlangıç kodu

main.dart
void main() {
  // Bir değer Future'ı ile başla
  // .then ile ikiye katla
  // .then ile yazdır
}

Örnek çözüm

main.dart
void main() {
  Future.value(5).then((v) => v * 2).then((v) => print(v));
}

Beklenen çıktı

10

Soru ve cevaplar

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

1 then eşleştir

Kavram Anlamı
.then tamamlanınca çalışır
(v) => v * 2 değeri dönüştürür
zincirleme adım adım işler
callback geri çağrı

2 then callback

Soru
Future.value(5).____((v) => print(v));
Cevap
Future.value(5).then((v) => print(v));

Açıklama: then ile tamamlanma callback'i verilir.

3 Future.value(3).then((v) => v + 1).then((v) => print(v)) ne yazdırır?

main.dart
Future.value(3)
  .then((v) => v + 1)
  .then((v) => print(v));
  • 1 Doğru cevap
  • 3
  • 4
  • 7

Açıklama: İlk then 3'ü 4 yapar, ikinci then 4'ü yazdırır; sonuç 4.

Başlangıç bölümündeki tüm dersler