This example demonstrates using the Fetch API and Promises, in conjunction with d3-dsv, to load a few CSV files in parallel. Compare this to using d3-queue, which also allows configurable concurrency.
<!DOCTYPE html>
<meta charset="utf-8">
<style>
h1 {
text-align: center;
font-family: "Helvetica Neue";
font-size: 96px;
line-height: 350px;
}
</style>
<h1>1 + 2 + 3 = <span id="result">?</span></h1>
<script src="https://d3js.org/d3-dsv.v1.min.js"></script>
<script>
Promise.all([
"one.csv",
"two.csv",
"three.csv"
].map(function(url) {
return fetch(url).then(function(response) {
return response.ok ? response.text() : Promise.reject(response.status);
}).then(function(text) {
return d3.csvParse(text);
});
})).then(function(value) {
var one = +value[0][0].number,
two = +value[1][0].number,
three = +value[2][0].number;
document.querySelector("#result").textContent = one + two + three;
});
</script>
number
1
number
3
number
2