Hier ist mein Code:Wie stellt man sicher, dass alle Daten in das Array geschoben werden, bevor das Versprechen erfüllt wird?
let promise = new Promise((resolve, reject) => {
let dataArray: Array<Object> = [];
d3.csvParse(csvData, (data, error) => {
if (error) reject('error occurred while parsing csv');
dataArray.push(data);
});
resolve(dataArray);
});
I d3 bin mit der CSV-Datei zu analysieren, die vom Server abgerufen wird. Was ich im Grunde versuche zu tun, ist sicherzustellen, dass die Analyse durchgeführt wird, bevor das Versprechen/Objekt zurückgegeben wird, also übergebe ich es an eine andere Funktion (hier nicht gezeigt). Danke
https://runkit.com/587b513664a8d4001433714a/587b513664a8d4001433714b zu analysieren beendet Sie müssen die Callback-Funktion weglassen, oder Sie werden nur die Spalten-Header in 'dataArray' – Booster2ooo
Ihnen für Ihre Antwort danken lässt. Das Problem hier ist, dass das Versprechen immer abgelehnt wird, irgendwelche Ideen warum? Ich werde versuchen, den Rückruf wegzulassen, wie @ Booster2ooo vorgeschlagen hat. – abedzantout
Es wird zurückgewiesen, weil das zweite Argument von csvParse der Index der Zeile ist, kein Fehler. Sobald also der Index 1 erreicht wird, ist die Bedingung erfüllt und das Versprechen wird abgelehnt. https://github.com/d3/d3-dsv/blob/master/README.md#csvParse – Booster2ooo