scheduleMicrotask
- Dart kursu
- İleri seviye
- Ders 10/83
- 5 dk
scheduleMicrotask ile mikro görev öğrenirsin.
scheduleMicrotask fonksiyonu
scheduleMicrotask(fn), fn'i microtask kuyruğuna ekler. Geriye değer döndürmez; sıralama garantisi verir ama sonuç beklemez.
Future.microtask'tan farkı: Future döndürmez. Sadece yan etkileri (print, durum güncelleme) olan küçük işler içindir.
Örnek: scheduleMicrotask(() => print('micro'));. Bu satırdan sonra senkron kod devam eder; microtask tür sonunda işlenir.
microtask vs event sırası
Bir turda önce tüm microtask'ler bitirilir, sonra bir event işlenir. Bu yüzden scheduleMicrotask ile eklenen iş, Future.delayed'dan önce çalışır.
Örnek: scheduleMicrotask(() => print('m')); print('ana'); await Future.delayed(Duration(milliseconds: 1));. Sıra: 'ana' (senkron), 'm' (microtask türü), sonra delayed event tamamlanır.
Çıktı deterministiktir: 'ana', 'm'.
Uygulama microtask vs event sırasını gözle
main'i async yap. scheduleMicrotask(() => print('m')); ekle. print('ana'); ekle. await Future.delayed(Duration(milliseconds: 1)); ekle.
Başlangıç kodu
void main() {
// async yap; microtask ile 'm' zamanla; 'ana' yazdır; 1 ms bekle
}Örnek çözüm
void main() async {
scheduleMicrotask(() => print('m'));
print('ana');
await Future.delayed(Duration(milliseconds: 1));
}Beklenen çıktı
ana m
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 scheduleMicrotask ne döndürür?
- Future<void>
- Hiçbir şey (void) Doğru cevap
- Bir değer
- Stream
Açıklama: scheduleMicrotask void döndürür, Future beklemez.
2 Zamanlama fonksiyonları
| Kavram | Anlamı |
|---|---|
scheduleMicrotask |
Microtask kuyruğu |
Future.microtask |
Future döndürür |
Future.delayed |
Event kuyruğu |
Future.sync |
Hemen çağırır |
3 Microtask çağrısı
____(() => print('m'));
scheduleMicrotask(() => print('m'));
Açıklama: scheduleMicrotask fonksiyonu microtask kuyruğuna ekler.