Async/await

Async/await je dvojice klíčových slov v mnoha různých programovacích jazycích, která slouží k podpoře asynchronního programování. Jedná se o způsob řízení běhu příbuzný koprogramům a nejčastěji používaný pro asynchronní vstup/výstup a podobné úlohy. Dvojice async/await je podporována v Pythonu (od verze 3.5), v JavaScriptu (od verze ES2017), v C# (od verze 5.0), v Kotlinu, v Dartu, Hacku, Rustu (od verze 1.39)[1], Swiftu[2] a Nimu. Další jazyky s jeho zavedením počítají, například Scala.

Slovem async bývá uvozena funkce, která může dočasně vrátit řízení slovem await.

Python

Následující umělý příklad v Pythonu ukazuje podprogram main, který po vypsání „Jsem“ zastaví na vteřinu provádění, než vypíše „tady“. Zastaví je přitom asynchronně, tedy interpret může během oné vteřiny vykonávat jinou, zde nezobrazenou asynchronní část programu.

import asyncio

async def main():
    print("Jsem")
    await asyncio.sleep(1)
    print("tady")

asyncio.run(main())

Reference

V tomto článku byl použit překlad textu z článku Async/await na anglické Wikipedii.

  1. Vyšel Rust 1.39 s podporou async/await. Root.cz [online]. 2019-11-8. Dostupné online. ISSN 1212-8309. 
  2. Swift dostane async/await. Root.cz [online]. 2020-12-30. Dostupné online. ISSN 1212-8309.