CodeBlanks Logo Icon CodeBlanks

then ile başarıyı yakalama

JavaScript kursu · Orta seviye · Ders 73/134

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

  1. 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.

  2. 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));
  3. 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

Orta seviye bölümündeki tüm dersler