d3.csv es un método asíncrono. Esto significa que el código dentro de la función de devolución de llamada se ejecuta cuando se cargan los datos, pero el código después y fuera de la función de devolución de llamada se ejecutará inmediatamente después de realizar la solicitud, cuando los datos aún no están disponibles. En otras palabras:
first();
d3.csv("path/to/file.csv", function(rows) {
third();
});
second();
Si desea utilizar los datos que se carga por d3.csv, que o bien tienen que poner ese código dentro de la función de devolución de llamada (donde third
es decir, más arriba):
d3.csv("path/to/file.csv", function(rows) {
doSomethingWithRows(rows);
});
function doSomethingWithRows(rows) {
// do something with rows
}
O bien, puede guardarlo como una variable global en la ventana que se puede hacer referencia a más tarde:
var rows;
d3.csv("path/to/file.csv", function(loadedRows) {
rows = loadedRows;
doSomethingWithRows();
});
function doSomethingWithRows() {
// do something with rows
}
Si lo desea, también puede asignar los datos cargados de forma explícita al objeto de ventana, en lugar de declarar una variable y luego la gestión de dos nombres diferentes:
d3.csv("path/to/file.csv", function(rows) {
window.rows = rows;
doSomethingWithRows();
});
function doSomethingWithRows() {
// do something with rows
}
¿Hay alguna forma de leer de MongoDB usando d3.js? –
@SGaber No creo que sea una buena idea pasar sus credenciales de base de datos a los usuarios. – TranslucentCloud