then ile başarıyı yakalama
then ile başarılı sonucu ve dönen değeri yakalamayı öğrenirsin.
then ile sonucu yakalama
Bir promise tamamlandığında sonucu almak için then metodunu kullanırsın. then, bir fonksiyon alır ve bu fonksiyona promise'in çözdüğü değer geçirilir.
const order = new Promise(resolve => resolve('gönderildi'));
order.then(status => {
console.log(status);
});then kendisi de yeni bir promise döndürür; bu sayede zincirleme yapabilirsin. Callback'lerin aksine, sonuç hazır olduğunda otomatik çağrılır.
Zincirleme (chaining)
Her then çağrısı yeni bir promise döndürdüğü için, sonuçları sırayla işleyebilirsin. Bir then'in döndürdüğü değer, bir sonraki then'e geçirilir.
fetchOrder()
.then(order => order.id)
.then(id => console.log(id));Bu zincir yapısı, iç içe callback'lerin yerine geçer ve kodu yukarıdan aşağıya okunur hale getirir. Her halka bir sonrakine veri aktarır.
Uygulama İki then ile name'i yazdır
loadUser adlı fonksiyon bir promise döndürür ve bu promise bir kullanıcı nesnesine çözülür. loadUser'ı çağır; ilk then ile kullanıcının name özelliğini döndür; ikinci then ile bu ismi console.log ile yazdır.
Örnek çözümü göster
loadUser()
.then(user => user.name)
.then(name => console.log(name));
Kendini test et
-
then metodu ne döndürür?
- Resolve edilen değeri
- undefined
- Yeni bir promise
- Orijinal promise'i
Cevabı göster
Yeni bir promise — Doğru! then her zaman yeni bir promise döndürür.
-
Zincirin ikinci halkası
fetchOrder() .then(order => order.id) .____(id => console.log(id));Cevabı göster
fetchOrder() .then(order => order.id) .then(id => console.log(id)); -
then kavramlarını eşleştir
- then
- Başarılı sonucu yakalar
- dönüş değeri
- Sonraki then'e geçer
- zincirleme
- then'leri sıraya dizer