Junior
Async/await ile Promise arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
async/await promises üzerine sözdizimi şekeridir. Asenkron kodu daha okunabilir ve senkron tarzda yazmaya olanak tanır, async anahtar kelimesiyle fonksiyonlar tanımlanır ve bu fonksiyonlar içinde await kullanılarak promise’in çözülmesi beklenir. Promises, asenkron bir işlemin tamamlanmasını (veya başarısız olmasını) ve sonucunu temsil eden nesnelerdir.
| Özellik | async/await | Promise |
|---|---|---|
| Sözdizimi | Daha çok senkron koda benzer. | .then(), .catch(), .finally() metodlarını kullanır. |
| Okunabilirlik | Genellikle daha yüksek, özellikle zincirleme durumlarda. | Karmaşık zincirlerde "Callback hell"'e yol açabilir. |
| Hata işleme | Standart try...catch kullanır. |
.catch() veya .then()'de ikinci argüman kullanılır. |
| Paralelizm | Açıkça Promise.all() veya Promise.allSettled() kullanımı gerekir. |
Daha açık olabilir, ancak async/await olmadan daha az okunabilir. |
// Promise ile örnek
function getDataPromise() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Veriler alındı');
}, 1000);
});
}
getDataPromise()
.then(data => {
console.log(data);
})
.catch(error => {
console.error(error);
});
// async/await ile örnek
async function getDataAsync() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Veriler alındı');
}, 1000);
});
}
async function processData() {
try {
const data = await getDataAsync();
console.log(data);
} catch (error) {
console.error(error);
}
}
processData();