1. Unutulan "await" Kelimesi
async function fetchData() {
const response = fetch('https://jsonplaceholder.typicode.com/posts');
const data = await response.json();
console.log(data);
}
Burada, `await` anahtar kelimesinin eksik olması, `response` verisinin hemen işlenmesine neden olacak ve `data` henüz elde edilmeden `console.log()` çalışacaktır.
Çözüm: *await* kelimesini eksiksiz kullanarak bu hatadan kolayca kaçınabilirsiniz.
async function fetchData() {
const response = await fetch('https://jsonplaceholder.typicode.com/posts');
const data = await response.json();
console.log(data);
}
2. Hatalı Hata Yönetimi
async function getPosts() {
const response = await fetch('https://jsonplaceholder.typicode.com/posts');
const posts = await response.json();
console.log(posts);
}
Yukarıdaki kod, bir ağ hatası oluştuğunda herhangi bir hata mesajı vermez. Bu da beklenmedik hatalara neden olabilir.
Çözüm: Hataları doğru bir şekilde ele almak için *try/catch* bloğu kullanmak en iyisidir.
async function getPosts() {
try {
const response = await fetch('https://jsonplaceholder.typicode.com/posts');
const posts = await response.json();
console.log(posts);
} catch (error) {
console.error('Hata oluştu: ', error);
}
}
3. Aynı Anda Birden Fazla Asenkron İşlem Yapmaya Çalışmak
async function fetchData() {
const userResponse = await fetch('https://jsonplaceholder.typicode.com/users');
const postResponse = await fetch('https://jsonplaceholder.typicode.com/posts');
const users = await userResponse.json();
const posts = await postResponse.json();
console.log(users, posts);
}
Burada, her iki `fetch` çağrısı sırasıyla bekletilmektedir. Bu, zaman kaybına yol açar.
Çözüm: `Promise.all()` ile tüm işlemleri aynı anda başlatabiliriz.
async function fetchData() {
const [userResponse, postResponse] = await Promise.all([
fetch('https://jsonplaceholder.typicode.com/users'),
fetch('https://jsonplaceholder.typicode.com/posts')
]);
const users = await userResponse.json();
const posts = await postResponse.json();
console.log(users, posts);
}
Bu yöntemle, her iki işlem de aynı anda çalışacak ve daha hızlı sonuç alırsınız.
4. Asenkron İşlemleri Sırasıyla Yapma İhtiyacı
Çözüm: Gerekirse işlemleri paralel çalıştırarak zaman kazanabilirsiniz.
Sonuç
Unutmayın, asenkron programlama bir öğrenme süreci gerektirir. Sabırlı olun, denemeler yapın ve hatalarınızdan ders çıkarın. Her yeni kod satırı, bir öncekinden daha iyi olacaktır!