MatTreeFlattener does not preserve traversal order while flattening mixed [] and Observable<[]>
- Langage dominant
- TypeScript
- Étoiles
- 25k
- Forks
- 6.8k
- Merge moyen
- 1 j 8 h
- PR mergées (30 j)
- 91
Description
When `MatTreeFlattener` `flattenNodes` method is used to flatten a data structure that mixes use of `[]` and `Observable<[]>`, the resulting flattened nodes are out of order as the children found from `Observable<[]>` are not done syncronously, but instead are done in order of discovery as they are each sent into the microtask queue to be done. They are sent in the correct order however to the task queue.
It appears the code in question is here:
https://github.com/angular/material2/blob/da63c6f85005966b42864a6c10f60896c8362361/src/lib/tree/data-source/flat-data-source.ts#L62-L68
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez dans src/lib/tree/data-source/flat-data-source.ts, au niveau de l’implémentation liée de MatTreeFlattener.flattenNodes, et reproduisez l’aplatissement d’une structure qui mélange [] avec des enfants Observable<[]>. Suivez la manière dont ces enfants sont mis en file d’attente et vérifiez que le résultat aplati préserve l’ordre de parcours.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- angular, typescript
- Domaine
- frontend
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100