Junior
Promise.all ne işe yarar?
sobes.tech yapay zeka
AI'dan gelen yanıt
Promise.all, bir dizge veya başka bir yineleyici nesne kabul eder ve yeni bir söz verir. Bu yeni söz, tüm iletilen sözler başarıyla tamamlandığında çalışır. Sonuç, iletilen her sözün sonuçlarına karşılık gelen, aynı sıradaki değerleri içeren bir dizi olacaktır.
Eğer en az biri iletilen söz reddedilirse, Promise.all derhal reddedilir ve ilk reddedilen sözün nedeni ile reddedilir.
Uygulamalar:
- Birbirine bağımlı olmayan birkaç asenkron işlemin eşzamanlı yürütülmesi.
- Bir dizi işlemin tamamlanmasını bekleyip, ardından bir sonraki adıma geçmek.
Örnek:
async function fetchData() {
const urls = [
'https://api.example.com/data1',
'https://api.example.com/data2',
'https://api.example.com/data3',
];
try {
// Aynı anda birkaç URL'den veri yükleme
const responses = await Promise.all(urls.map(url => fetch(url)));
// Her yanıtın başarılı olup olmadığını kontrol et
for (const response of responses) {
if (!response.ok) {
// Yanıt başarısızsa, hata fırlat
throw new Error(`HTTP hatası! durum: ${response.status}`);
}
}
// Tüm yanıtları JSON'a dönüştür
const jsonData = await Promise.all(responses.map(response => response.json()));
// Artık jsonData, tüm isteklerin sonuçlarını içeren bir dizi
console.log(jsonData);
} catch (error) {
// Hata, herhangi bir söz reddedilirse (Fetch veya JSON.parse)
console.error('Veri alınırken hata:', error);
}
}
fetchData();