async fonksiyonlar
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
-
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.
-
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" }; } -
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