CodeBlanks Logo Icon CodeBlanks

Özet - Promise'lar

then, Promise.all ve finally'i birleştirerek bir paralel indirici yazarsın.

Özet - Promise'lar

Bu grupta Promise'ların temelini öğrendin. Bir Promise, asenkron bir işlemin gelecekteki sonuçunu temsil eder ve pending, fulfilled, rejected olmak üzere üç durumda bulunur. Sonucu almak için then, hatayı yakalamak için catch, temizlik için finally kullanırsın.

Paralel işler için Promise.all tümü bitince sonuç dizisi döndürür; Promise.race ilk tamamlananın sonuçunu verir. Bu yöntemler, birden fazla asenkron işi tek bir akışta yönetmenin temel araçlarıdır. Sonraki derste async/await ile aynı mantığı daha okunaklı yazacağız.

Uygulama Sıra sende: zincir kur

Promise.resolve(5) ile başla. .then(n => n * 2) ile değeri iki katına çıkar. .then(n => console.log(n)) ile yazdır. Son olarak .finally(() => console.log("tamam")) ekle.

Başlangıç kodu

index.js
// Promise.resolve ile başla
// .then ile çarp, .then ile yazdır, .finally ekle

Örnek çözüm

index.js
Promise.resolve(5)
  .then(n => n * 2)
  .then(n => console.log(n))
  .finally(() => console.log("tamam"));

Beklenen çıktı

10
tamam

Uygulama Sıra sende: Promise.race ile yarış

const a = new Promise(res => setTimeout(() => res("birinci"), 10)) ve const b = new Promise(res => setTimeout(() => res("ikinci"), 30)) oluştur. Promise.race([a, b]) çağır, .then(winner => console.log(winner)) ile yazdır.

Başlangıç kodu

index.js
// a ve b Promise'ları oluştur
// Promise.race ile kazananı yazdır

Örnek çözüm

index.js
const a = new Promise(res => setTimeout(() => res("birinci"), 10));
const b = new Promise(res => setTimeout(() => res("ikinci"), 30));
Promise.race([a, b]).then(winner => console.log(winner));

Beklenen çıktı

birinci

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bir Promise zincirinde finally çağrısı neyi değiştirmez?

  • Zincirin hata durumunu
  • Async işlemin hızını
  • Zincirin sırasını
  • Önceki Promise'in sonuçunu Doğru cevap

Açıklama: finally yalnızca yan etki yapar, değeri korur.

2 Promise yöntemlerini eşleştir

Kavram Anlamı
then tamamlanınca çalışır
catch hatayı yakalar
finally her durumda çalışır
Promise.all tümü bitince döner

Başlangıç bölümündeki tüm dersler