====== Asynchroon programmeren ====== 🗂️ [[start|Terug naar start]] 🔹 Asynchroon programmeren betekent dat je meerdere functies of taken tegelijkertijd kunt uitvoeren, zonder dat je hoeft te wachten tot de vorige klaar is.\\ 🔹Dit noemen we ook wel niet-blokkerende code: één taak kan pauzeren //(bijvoorbeeld tijdens wachten op data van internet)//, terwijl een andere taak doorgaat.​\\ 🔹In Python maak je hiervoor vaak gebruik van de **asyncio-bibliotheek** en de keywords **async** en **await** ===== nest_asyncio ===== Hieronder een voorbeeld //(in een Class)// van een werkende versie die werkt met Python en Streamlit v1.18 +. Voor oudere Streamlit versies gebruik je de "[[steamlit_home#nest_asyncio_voor_versies_118|nest_asyncio methode]]" ===== asyncio (Streamlit v1.18 of hoger) ===== Een simpel code voorbeeld van werken met asyncio in Python met Streamlit als GUI. Dit werkt voor Streamlit waarvan de versie groter/hoger is dan 1.18 import asyncio class Voorbeeld: def run(self): return asyncio.run(self.haal()) async def haal(self): return await asyncio.gather( self.api1(), self.api2() ) async def api1(self): await asyncio.sleep(1) return "API 1 klaar" async def api2(self): await asyncio.sleep(2) return "API 2 klaar" v = Voorbeeld() print(v.run()) # ['API 1 klaar', 'API 2 klaar']