CodeBlanks Logo Icon CodeBlanks

async fonksiyonlar

JavaScript kursu · Orta seviye · Ders 78/134

async anahtar kelimesi ile bir fonksiyonun nasıl promise döndürdüğünü öğrenirsin.

async anahtar kelimesi

Bir fonksiyonun başına async yazdığında, o fonksiyon otomatik olarak bir promise döndürür. Bu, asenkron işlemleri yazmayı kolaylaştırır.

async function fetchGreeting() {
  return "Merhaba";
}

Buradaki return "Merhaba" doğrudan bir dize vermez; JavaScript onu Promise.resolve("Merhaba") ile sarar. Yani fonksiyon çözümlenmiş (fulfilled) bir promise döndürür. async kelimesi tek başına kodu yavaşlatmaz; yalnızca dönüş değerinin bir promise olmasını garantiler.

Promise olmayan dönüş değeri

Bir async fonksiyonunda zaten bir promise döndürürsen, JavaScript onu olduğu gibi verir; ikinci kez sarmaz. Ancak dize, sayı veya nesne döndürürsen, değer otomatik olarak Promise.resolve ile sarılır.

async function one() { return Promise.resolve(10); }
async function two() { return 10; }

Her iki fonksiyon da çözümlenmiş bir promise verir; içerdikleri değer de aynıdır. Bu tutarlılık, async fonksiyonların her zaman promise bekleyen kodlarla uyumlu çalışmasını sağlar.

Uygulama async fonksiyon yaz

async function fetchGreeting() adında bir fonksiyon yaz. 'Merhaba' dizesini döndürsün.

Örnek çözümü göster
async function fetchGreeting() {
  return "Merhaba";
}

Kendini test et

  1. async function f() { return 5; } ne döndürür?

    async function f() { return 5; }
    const result = f();
    • 5 sayısını
    • Promise<5> (çözümlenmiş promise)
    • undefined
    • Error fırlatır
    Cevabı göster

    Promise<5> (çözümlenmiş promise) — Doğru! async fonksiyon her zaman bir promise döndürür; 5 değeri promise içine sarılır.

  2. async fonksiyon bildir

    function fetchUser() {
      return { name: "Ayşe" };
    }
    // Yukarıyı async yap:
    ____ function fetchUser() {
      return { name: "Ayşe" };
    }
    Cevabı göster
    function fetchUser() {
      return { name: "Ayşe" };
    }
    // Yukarıyı async yap:
    async function fetchUser() {
      return { name: "Ayşe" };
    }
  3. async fonksiyon davranışlarını eşleştir

    async function f() { return 5; }
    Promise.resolve(5) döndürür
    async function f() { return p; }
    p promise ise olduğu gibi verir
    async function f() { }
    Promise.resolve(undefined) döndürür
    async function f() { throw x; }
    reddedilmiş promise döndürür

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