Awaiting : une librairie JavaScript asynchrone

Par:
fredericmazue

jeu, 13/04/2017 - 12:17

La programmation asynchrone est un incontournable de la programmation moderne. En JavaScript, les fonctions async et await existent pour cela. Cependant leur usage n'est pas la panacée selon Hunter 'Javacript Junkie' Loftis, auteur de la librairie Awaiting.

Cette librairie, utilisable dans des applications node.js ou dans les navigateurs, propose un plus haut niveau d'abstraction qui vous facilitera la tâche. Son jeu d'API est très riche. Par exemple :

  • delay : attend qu'un délai soit écoulé :-)
  • callback : traite les fonctions de rappel, par exemple celles du coeur de node.js comme des fonctions asynchrones.
  • limit : pose une limite de temps (timeout) sur une fonction asynchrone, afin d'assurer que l'application ne se bloque pas.
  • list : attend les résultats d'une liste de fonctions asynchrones s'exécutant en parallèle.
  • map : même chose que list mais en limitant le nombre de fonctions s'exécutant en parallèle, afin d'éviter par exemple des problèmes de dépassement mémoire, ou la surcharge d'un serveur.
  • ...

Le code de Awaiting, qui n'est sous aucune licence, est sur GitHub.

Exemple d'utilisation de Awaiting dans une application web (navigateur)

<script src='awaiting.js'></script>
<script>
  const a = awaiting

  main()

  async function main() {
    await a.delay(1000)
  }
</script>