Promesses et récursivité : ordonnancer un flux de téléchargements simultanés (1)

Téléchargement : données mélangées, avec méta-info, solution courante
sommaire ~ note de présentation ~ <code> ~ codes sur Github

Il s'agit d'attribuer à chaque donnée téléchargée ses facteurs si elle en a. Chaque facteur est lui-même attribué avec ses propres facteurs s'il en a. Un facteur est en fait une autre donnée téléchargée. Tant que celle-ci n'est pas téléchargée, le facteur n'est pas disponible. Si elle est téléchargée mais que ses facteurs (si elle en a) ne sont pas disponibles, elle n'est toujours pas disponible.
Chaque donnée est ainsi pleinement disponible quand elle est téléchargée, que ses propres facteurs éventuels sont téléchargés et disponibles eux-mêmes, càd que les facteurs de ses facteurs le sont aussi etc.

Solution

  1. Promise.all() : flux de téléchargements, chacun suivi de son traitement
  2. .then() : lot récursif de traitements, lié comme promesse à ce flux
  3. .then() : instruction finale, liée comme promesse à ces lots

Résultat avec données mélangées et méta-info