then ve catch
- Node.js kursu
- Başlangıç
- Ders 89/116
- 5 dk
.then ve .catch ile promise zincirleme öğrenirsin.
then ile sonuçu al
Bir Promise'in sonuçunu elde etmek için then yöntemini kullanırsın. then(deger => {...}), Promise fulfilled olduğunda çağrılır ve gelen değeri işler. then de bir Promise döndürdüğü için çağrıları zincirleyebilirsin: her then'in döndürdüğü değer bir sonrakine geçer.
p.then(deger => console.log(deger));Hata durumunu ayrı işlemek istersen ikinci parametre olarak bir işlev daha verebilirsin: then(deger => {...}, hata => {...}). Ama daha okunaklı yol, hatayı catch ile yakalamaktır.
catch ile hata yakala
Reddedilen bir Promise'in hatasını yakalamak için catch kullanırsın. catch(err => {...}), zincirin herhangi bir yerindeki hatayı yakalar; bu yüzden zincirin sonuna eklenmesi yaygındır.
p
.then(deger => deger.toUpperCase())
.catch(err => console.error(err));catch aslında then(null, err => {...}) yazımının kısayoludur. Hata yakalandıktan sonra catch normal bir değer döndürebilir; bu durumda zincir kurtulmuş sayılır ve sonraki then çalışır.
Uygulama Sıra sende: then ve catch zinciri
new Promise((resolve, reject) => resolve("merhaba")) ile bir Promise oluştur. .then(value => console.log(value)) ile sonuçu yazdır. .catch(err => console.error(err)) ile de hata yakala.
Başlangıç kodu
// Bir Promise oluştur ve resolve et
// .then ile sonuçu yazdır, .catch ile hatayı yakalaÖrnek çözüm
new Promise((resolve, reject) => resolve("merhaba"))
.then(value => console.log(value))
.catch(err => console.error(err));Beklenen çıktı
merhaba
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Boşluğu doldur: hata yakala
p.then(value => console.log(value))
.____(err => console.error(err));
p.then(value => console.log(value))
.catch(err => console.error(err));
Açıklama: catch, reddedilen Promise'lerde çalışır.
2 Bir Promise zincirinde catch ne zaman çalışır?
- Zincirdeki herhangi bir Promise rejected olunca Doğru cevap
- Promise fulfilled olunca
- Yalnızca then hata verince
- Her durumda
Açıklama: catch, zincirdeki ilk reddedilen Promise'ten sonra çalışır.
3 Yöntemleri göreviyle eşleştir
| Kavram | Anlamı |
|---|---|
then |
tamamlanınca çalışır |
catch |
hatayı yakalar |
resolve |
başarıyı bildirir |