Döngü içinde await (ARCH2030)
Anahtar python.async.await-in-loop · Önem info · Kategori async
Bir döngü gövdesinde her eleman için await etmek, birbirinden bağımsız asenkron işlemleri seri hale getirir. asyncio.gather ile bunlar eşzamanlı çalıştırılarak toplam süre kısaltılabilir.
Hatalı
Bölüm başlığı “Hatalı”async def load_all(ids): results = [] for i in ids: results.append(await fetch(i)) # seri return resultsimport asyncio
async def load_all(ids): return await asyncio.gather(*(fetch(i) for i in ids)) # eşzamanlıDüzeltme
Bölüm başlığı “Düzeltme”Bağımsız çağrıları asyncio.gather ile toplayıp tek seferde eşzamanlı bekletin.