angular / angular/components

MatTreeFlattener does not preserve traversal order while flattening mixed [] and Observable<[]>

Ouverte
#13,461 0 commentaires 5 réactions 0 personnes assignées Voir sur GitHub
area: material/tree G P2
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.