使用
推迟
之后
等待
d3.queue()
.defer(d3.json, 'path\to\country\data')
.await(doFirstChart)
.defer(d3.json, 'path\to\sales\data')
.await(doSecondChart)
对此:
d3.queue()
.defer(d3.json, 'path\to\country\data')
.defer(d3.json, 'path\to\sales\data')
.await(splitCharts)
功能在哪里
splitCharts(err, ...args)
function splitCharts(err, ...charts){
doFirstChart(charts[0]);
doSecondChart(charts[1]);
}
console.log
排队过程,因此您可以从那里开始工作:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script src="http://d3js.org/d3.v3.min.js"></script>
<script src="http://d3js.org/topojson.v1.min.js"></script>
<script src="https://d3js.org/d3-queue.v3.min.js"></script>
</head>
<body>
<script>
function doFirstChart(err, ...args) {
console.log('[FUNC]: ', args);
}
d3.queue()
.defer(d3.json, 'https://gist.githubusercontent.com/GbalsaC/db387adae4e84e999960ef79267ceada/raw/0cf2b08280452c7dbb04f81fafcb304bb841bc36/test1.json')
.defer(d3.json, 'https://gist.githubusercontent.com/GbalsaC/db387adae4e84e999960ef79267ceada/raw/0cf2b08280452c7dbb04f81fafcb304bb841bc36/test1.json')
.await(doFirstChart)
</script>
</body>
</html>
注:
.await()
回调,你必须定义
doFirstChart
功能如下:
function doFirstChart(myParam){
// Now you'll return an anonymous function as first step
return (err, ...args) => {
// Here you'll do your thing, like rendering the data
console.log('My Param: ', myParam); // Your Custom param
console.log('[FUNC]: ', args); // As before
}
}
<script></script>
标记到:
<script>
const paramTest = 'Testa Rossa';
function doFirstChart(myParam) {
return (err, ...args) => {
console.log('My Param: ', myParam);
console.log('[FUNC]: ', args);
}
}
d3.queue()
.defer(d3.json, 'https://gist.githubusercontent.com/GbalsaC/db387adae4e84e999960ef79267ceada/raw/0cf2b08280452c7dbb04f81fafcb304bb841bc36/test1.json')
.defer(d3.json, 'https://gist.githubusercontent.com/GbalsaC/db387adae4e84e999960ef79267ceada/raw/0cf2b08280452c7dbb04f81fafcb304bb841bc36/test1.json')
.await(doFirstChart(paramTest)) // do a first param declaration
</script>