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

Téléchargement : données mélangées, sans méta-info, solution full promises
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 promesses-traitements, lié comme promesse à ce flux - forme pour valider le développement
  3. .then() : instruction finale, liée comme promesse à ces lots

Résultat avec données mélangées et sans méta-info (code plus lisible)