finally ile temizlik
finally ile başarı veya hata ne olursa olsun çalışması gereken temizliği öğrenirsin.
finally ile temizlik
finally, promise yerleştiğinde (başarılı veya başarısız) her zaman çalışır. Bir parametre almaz; çünkü gelen değeri göremez. Yalnızca temizlik işleri için kullanılır: yükleniyor göstergesini gizleme, dosyayı kapatma gibi.
loadOrder()
.then(order => console.log(order))
.catch(error => console.log(error))
.finally(() => hideSpinner());finally, zinciri kırmaz; dönen değer bir sonraki adıma geçer. Bu yüzden son adım olarak eklenir.
finally ne zaman kullanılır?
finally en sık iki durumda kullanılır. Birincisi, bir işlem başlasın veya başarısız olsun, yükleniyor göstergesini gizlemek. İkincisi, ağ isteği bittikten sonra duruma göre arayüzü eski haline getirmek.
showSpinner();
loadOrder()
.finally(() => hideSpinner());Önemli olan nokta: finally hata yakalamaz, yalnızca yan etkileri temizler. Hata yönetimi catch'e, temizlik finally'e aittir.
Uygulama then, catch ve finally zinciri
fetchReport bir promise döndürür. fetchReport'u çağır ve zincir kur: then ile raporu console.log ile yazdır; catch ile hatayı console.log ile yazdır; finally ile hideSpinner'ı çağır.
Örnek çözümü göster
fetchReport()
.then(report => console.log(report))
.catch(error => console.log(error))
.finally(() => hideSpinner());
Kendini test et
-
finally çağrısına parametre olarak ne geçirilir?
- Parametre almaz
- Çözülen değer
- Reddetme nedeni
- Promise nesnesi
Cevabı göster
Parametre almaz — Doğru! finally parametre almaz; yalnızca temizlik yapar.
-
Zincire finally ekle
loadOrder() .then(order => console.log(order)) .____(() => hideSpinner());Cevabı göster
loadOrder() .then(order => console.log(order)) .finally(() => hideSpinner()); -
Üç metodu eşleştir
- then
- Başarı durumunu işler
- catch
- Hata durumunu işler
- finally
- Her iki durumda çalışır