Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| modul:m323:learningunits:lu03:callbacks [2024/09/11 09:11] – kmaurizi | modul:m323:learningunits:lu03:callbacks [2024/09/11 09:27] (aktuell) – [Callbacks in der Asynchronen Programmierung] kmaurizi | ||
|---|---|---|---|
| Zeile 41: | Zeile 41: | ||
| ===== Callbacks in der Asynchronen Programmierung ===== | ===== Callbacks in der Asynchronen Programmierung ===== | ||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | Wir werden das asynchrone Programmieren nicht vertiefen am BZZ. Dies dürfen Sie dann an der Fachhochschule 😉 | ||
| + | </ | ||
| + | |||
| Asynchrone Programmierung ist ein Ansatz, bei dem Operationen ausgeführt werden können, ohne den Ablauf des gesamten Programms zu blockieren. Ein häufiges Szenario für asynchrone Aufrufe sind Netzwerkanfragen, | Asynchrone Programmierung ist ein Ansatz, bei dem Operationen ausgeführt werden können, ohne den Ablauf des gesamten Programms zu blockieren. Ein häufiges Szenario für asynchrone Aufrufe sind Netzwerkanfragen, | ||
| Zeile 125: | Zeile 130: | ||
| async with httpx.AsyncClient() as client: | async with httpx.AsyncClient() as client: | ||
| try: | try: | ||
| - | response = await client.get(' | + | response = await client.get(' |
| print(response.text) | print(response.text) | ||
| except httpx.RequestError as exc: | except httpx.RequestError as exc: | ||
| Zeile 144: | Zeile 149: | ||
| import httpx | import httpx | ||
| import asyncio | import asyncio | ||
| + | |||
| async def fetch_data(url): | async def fetch_data(url): | ||
| async with httpx.AsyncClient() as client: | async with httpx.AsyncClient() as client: | ||
| response = await client.get(url) | response = await client.get(url) | ||
| - | return response.json() | + | return response.text |
| async def main(): | async def main(): | ||
| urls = [ | urls = [ | ||
| - | ' | + | ' |
| - | ' | + | ' |
| ] | ] | ||
| results = await asyncio.gather(*(fetch_data(url) for url in urls)) | results = await asyncio.gather(*(fetch_data(url) for url in urls)) | ||
| for result in results: | for result in results: | ||
| print(result) | print(result) | ||
| + | |||
| if __name__ == ' | if __name__ == ' | ||