Я пытался использовать JavaScript и D3. js для:
- чтения локального файла .csv из внешнего интерфейса
- передачи данных в D3. js для визуализации
.csv файл выглядит следующим образом:
time,psi
1,210
2,220
3,400
Файл сценария выглядит следующим образом:
<input type="file" id="fileInput" accept=".csv" multiple>
<script>
document.getElementById("fileInput").addEventListener('change', function getFile(){
const reader = new FileReader();
reader.onload =function fileReadCompleted(){
console.log(reader.result);
};
reader.readAsText(this.files[0]);
const text = reader.result;
var res = d3.csvParse(text);
console.log(res);
});
</script>
console.log(reader.result);
показывает, что я мог прочитать в файле.
typeof reader.result
возвращает string
, но когда я пытаюсь передать строку reader.result
в d3.csvParse
, в консоли ничего не появляется.
Кто-нибудь знает, как передать результат FileReader в d3.csvParse для обработки?
Заранее спасибо.
Обновление : код был изменен на
<input type="file" id="fileInput" accept=".csv" multiple>
<script>
document.getElementById("fileInput").addEventListener('change', function getFile(){
const reader = new FileReader();
var res;
reader.onload =function fileReadCompleted(){
res = d3.csvParse(reader.result);
console.log(res);
};
reader.readAsText(this.files[0]);
console.log(res);
});
</script>
Первый console.log(res)
показывает массив объектов.
Второй console.log(res)
вне функции fileReadCompleted
показывает undefined
.
Просто интересно, можно ли получить доступ к данным только внутри функции fileReadCompleted
?
Спасибо