angular / angular/components

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

Offen
#13,461 0 Kommentare 5 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
area: material/tree G P2
Vorherrschende Sprache
TypeScript
Sterne
25k
Forks
6.8k
Ø Merge
1 T. 8 Std.
Gemergte PRs (30 T.)
91

Beschreibung

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

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne in src/lib/tree/data-source/flat-data-source.ts bei der verknüpften Implementierung von MatTreeFlattener.flattenNodes und bilde das Abflachen einer Struktur nach, die [] mit Observable<[]>-Kindern mischt. Verfolge, wie diese Kinder in die Warteschlange eingereiht werden, und überprüfe, dass das abgeflachte Ergebnis die Traversierungsreihenfolge beibehält.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
angular, typescript
Bereich
frontend
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.