Future
- Dart kursu
- Orta seviye
- Ders 58/116
- 5 dk
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
void main() async {
// Future ile 42 değeri üret
// bekleyip sonuçu yazdır
}Örnek çözüm
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?
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
var f = ____.value(42);
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 |