Junior
Promise kullanımı ile async/await sözdizimi arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Promise, asenkron bir işlemin tamamlanmasını veya reddedilmesini yansıtan bir nesnedir. .then() ve .catch() geri çağrılarını kullanarak asenkron akışları yönetir.
async/await, Promise üzerinde bir sözdizimi şekeridir ve asenkron kodu daha okunabilir ve senkronik hale getirir. async ile işaretlenmiş bir fonksiyon her zaman bir Promise döner. await operatörü yalnızca async fonksiyonlar içinde kullanılabilir ve fonksiyonun yürütülmesini, Promise çözülene veya reddedilene kadar duraklatır, ardından sonucunu döner veya istisna fırlatır.
| Açıkama | Promise | Async/Await |
|---|---|---|
| Okunabilirlik | .then() ve .catch() zincirleri gerektirir |
Senkron koda benzer, doğrusal akış |
| Hata işleme | .catch() kullanır |
try...catch blokları kullanır |
| Yürütme akışı | Geri çağrılarla yönetilir | Fonksiyonu duraklatıp devam ettirir |
| Dönen değer | Promise | Promise (async fonksiyonlar için) veya Promise sonucu (await için) |
| Bağımlılık | Bağımsız mekanizma | Promise tabanlı |
Promise ile örnek:
// Promise örneği
function fetchDataPromise() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Veriler alındı (Promise)");
}, 1000);
});
}
fetchDataPromise()
.then(data => console.log(data))
.catch(error => console.error(error));
async/await ile örnek:
// async/await ile örnek
function fetchDataAsync() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Veriler alındı (async/await)");
}, 1000);
});
}
async function showData() {
try {
const data = await fetchDataAsync();
console.log(data);
} catch (error) {
console.error(error);
}
}
showData();