finally
- Node.js kursu
- Başlangıç
- Ders 92/116
- 5 dk
.finally ile temizlik öğrenirsin.
finally nedir?
finally, Promise zincirine eklenen ve fulfilled ya da rejected fark etmeksizin her durumda çalışan bir yöntemdir. Genellikle kaynak temizliği için kullanılır: dosyayı kapatmak, yükleniyor göstergesini gizlemek ya da bağlantıyı bırakmak gibi.
p
.then(deger => console.log(deger))
.catch(hata => console.error(hata))
.finally(() => console.log("bitti"));Önemli: finally'in işlevi parametre almaz ve döndürdüğü değer bir önceki Promise'in sonuçunu değiştirmez. Hata yakalandıktan sonra bile finally çalışır; ama finally içinde yeni bir hata fırlatırsan zincir yine reddedilir.
Uygulama Sıra sende: finally ile temizlik
Promise.resolve("tamam") ile bir Promise oluştur. .then(value => console.log(value)) ile sonuçu yazdır. .catch(err => console.error(err)) ile hatayı yakala. .finally(() => console.log("temizlik")) ile son mesajı yazdır.
Başlangıç kodu
// Promise.resolve ile başla
// .then, .catch ve .finally ekleÖrnek çözüm
Promise.resolve("tamam")
.then(value => console.log(value))
.catch(err => console.error(err))
.finally(() => console.log("temizlik"));Beklenen çıktı
tamam temizlik
finally değeri değiştirmez
finally, önceki Promise'in sonuçunu değiştirmez; yalnızca yan etki yapmak için kullanılır. then ya da catch gibi bir parametre almaz. finally'den dönen değer, bir sonraki then'e aktarılmaz; zincir özgün değerle devam eder.
Promise.resolve(1)
.finally(() => 2)
.then(v => console.log(v)); // 1Burada finally 2 döndürse bile then 1 alır. finally içinde fırlatılan hata ya da reddedilen Promise ise zinciri reddeder; temizlik sırasında hata oluşturmamaya dikkat et.
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Boşluğu doldur: finally ekle
p
.then(value => console.log(value))
.____(() => console.log("bitti"));
p
.then(value => console.log(value))
.finally(() => console.log("bitti"));
Açıklama: finally her durumda çalışır.
2 Bir Promise zincirinde finally ne zaman çalışır?
- Yalnızca fulfilled olunca
- Yalnızca rejected olunca
- Her iki durumda da Doğru cevap
- Yalnızca hata fırlatılınca
Açıklama: finally sonuç ne olursa olsun çalışır.
3 finally özellikleri
| Kavram | Anlamı |
|---|---|
finally |
her durumda çalışır |
parametre |
almaz |
değer |
değiştirmez |