Адаптировать старый Geo к D3 v5, как выразить очередь Promise? - PullRequest
0 голосов
/ 28 октября 2019

Я адаптирую старую версию карты D3 для визуализации для современного D3v5: первый шаг, к D3v4, выполняется с этим источником , но на последнем этапе мне нужно преобразовать Обещанияиз старой очереди

d3.queue().defer(d3.json,"file.json").(ready);

в современный стиль v5 ... Как выразить в стиле v5? Кажется, это что-то вроде

var brMap = d3.json("file.json");
Promise.all([brMap]).then(ready)    

, но не работает.


PS: где v5 , простые примеры?

1 Ответ

0 голосов
/ 28 октября 2019

Спасибо @GerardoFurtado и @altocumulus, ответ был на его комментарии, здесь объединяются все.


Есть некоторые глобальные значения (возможно, не лучшая практика)

var g;

В контексте «после загрузки страницы» запустите

svg = d3.select("etc..")
g = svg.append("g")
// ...
d3.json("file.json").then(ready);

, где функция ready() имеет вид

function ready(shp) {
  var data1 = topojson.feature(shp, shp.item1);
  //... draw map appenging features to global g
}

Смотрите окончательный результат решения здесь .

...