本地 D3 无法在线工作

Local D3 Not working Online

我最近尝试将我在本地处理的 D3 项目移动到 github,但是 运行 遇到了问题。这是它在当地的样子:

要点在这里在线:https://gist.github.com/KingOfCramers/6057411e8c55d87a5894291aefbe0b6d

我正在使用承诺包装器来加载资源,然后在它解析时使用 .all 函数来触发我的可视化。相关的代码如下所示:

var promiseWrapper = (xhr, d) => new Promise(resolve => xhr(d, (p) => resolve(p)))    
Promise.all([promiseWrapper(d3.json,"yemen.json"),promiseWrapper(d3.csv,"droneData.csv")]).then(resolve =>{
    createMap(resolve[0],resolve[1])
})

function createMap(districts,drones){...visualization code...

当我将可视化上传到 github 时,块页面告诉我它无法访问我的 json 数据的特征数组。我在本地工作时不会收到此错误。我将此错误消息记录到控制台:"Uncaught (in promise) TypeError: Cannot read property 'features' of null." 我做错了什么?

我将提供一个替代方案,但我不确定这是否能回答您的问题。

d3 提供了自己的排队机制,可以完成您使用 pomiseWrapper 所做的事情。

https://github.com/d3/d3-queue

d3.queue()
  .defer(d3.json, "yemen.json")
  .defer(d3.csv, "droneData.csv")
  .await(createMap);

function createMap(error, districts, drones) {....

你有工作 fiddle 吗?