У меня проблемы с использованием d3.queue. Я думал, что следующее будет работать, но объект, зарегистрированный на консоли, пуст во время console.log (). Когда я проверяю объект, он находится там и заполняется, как и ожидалось, он просто не делает этого, когда запускается функция awaitAll, что сбивает с толку.
d3.select("#btn").on("click", function() {
data = {};
var q = d3.queue();
function getData(phpCall, idx, callback) {
setTimeout(function() {
d3.json(phpCall, function(json) {
data[idx] = json
});
callback(null);
}, 0);
}
for (let i = start; i <= end; i++) {
var phpCall =
baseUrl + i;
q.defer(getData, phpCall, i);
}
q.awaitAll(function() {
console.log(data);
});
});