d3.js - 将旧geo适配到D3 v5,如何表达一个Promise的队列?
问题描述
我正在使旧版本的 D3 地图可视化适应现代 D3v5:第一步,到 D3v4,正在使用此源运行,但到最后一步,我需要从旧队列转换 Promise,
d3.queue().defer(d3.json,"file.json").(ready);
到现代v5风格...如何用v5风格表达?
似乎这是
var brMap = d3.json("file.json");
Promise.all([brMap]).then(ready)
但不工作。
PS:哪里有v5的简单例子?
解决方案
感谢@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
}
在此处查看解决方案的最终结果。
推荐阅读
- android - Rxjava:插入仅适用于单个但不适用于可完成
- python - 根据索引列表从数组中获取元素
- python - tensorflow_probability 分布应该如何用于多维空间?
- material-ui - MKDOCS 材质主题搜索功能不起作用
- database - Mongo DB:如何从一个集合中复制文档并将其作为字段添加到另一个集合中的相关文档?
- python - 在python中拆分大数据文件
- python - Dash Plotly - 如何重定向到将重定向到 Dash 的外部链接
- python - cmake:致命错误:pyconfig.h:没有这样的文件或目录
- javascript - TypeError:使用状态时无法读取未定义的属性“0”
- android - 发送图像作为 Flutter 平台通道方法的参数