d3.json() 回调中的代码未执行

2024-01-14

我正在尝试加载 GeoJSON 文件并使用它作为 D3 的基础来绘制一些图形v5.

问题是浏览器跳过了包含在d3.json()称呼。我尝试插入断点来测试,但浏览器会跳过它们,我不明白为什么。

下面的代码片段。

d3.json("/trip_animate/tripData.geojson", function(data) {

  console.log("It just works");  // This never logs to console.

  //...all the rest
}

代码从最初的继续console.log(),但我省略了所有内容,因为我怀疑问题出在d3.json调用自己。


的签名d3.json https://github.com/d3/d3-fetch#json has changed https://github.com/d3/d3/blob/master/CHANGES.md#changes-in-d3-50从 D3 v4 到 v5。它已从现已弃用的模块 d3-request 移至新的模块d3-fetch https://github.com/d3/d3-fetch模块。从 v5 D3 开始使用获取API https://fetch.spec.whatwg.org/有利于老年人XMLHttpRequest并反过来采用了使用Promises https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise处理这些异步请求。

第二个参数d3.json()回调不再处理请求,而是可选的RequestInit https://fetch.spec.whatwg.org/#requestinit目的。d3.json()现在将返回一个您可以在其中处理的 Promise.then() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then method.

您的代码因此变为:

d3.json("/trip_animate/tripData.geojson")
  .then(function(data){
    // Code from your callback goes here...
  });

随着 Fetch API 的引入,调用的错误处理也发生了变化。 v5 之前的版本使用传递给的回调的第一个参数d3.json()处理错误:

d3.json(url, function(error, data) { 
  if (error) throw error;
  // Normal handling beyond this point.
});

自 D3 v5 起,承诺返回d3.json()如果遇到错误将被拒绝。因此,可以应用处理这些拒绝的普通 JS 方法:

  1. 将拒绝处理程序作为第二个传递argument https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then#Parameters to .then(onFulfilled, onRejected).

  2. Use .catch(onRejected) https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch向 Promise 添加拒绝处理程序。

应用第二个解决方案,您的代码就变成了

d3.json("/trip_animate/tripData.geojson")
  .then(function(data) {
    // Code from your callback goes here...
  })
  .catch(function(error) {
    // Do some error handling.
  });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

d3.json() 回调中的代码未执行 的相关文章

  • 如何在 AngularJS 中使用 $timeout 运行带有参数的函数?

    我的 AngularJS 控制器中有这个函数 看起来像这样 polling interval 1000 var poll function Execution code timeout poll polling interval poll
  • 使用 AJAX 来回发送信息

    使用 post 你可以向服务器发送信息 但是当你需要从服务器接收信息时怎么办呢 信息如何从可以由 php 变量保存的方式变为可以由 javascript 变量保存的方式 反之亦然 这与您的问题更相关 http docs jquery com
  • 如何使用nodeJS SFTP客户端列出所有子目录?

    有趣的节点 JS ssh2 sftp client 我想列出给定路径中的所有目录及其子目录 let sftp new ssh2SftpClient console log sftp sftp connect host xx xxx xxx
  • Jqplot 中两个系列数据的不同颜色条

    我想知道如何在 Jqplot 中为两个系列制作不同的颜色条 如果我只有一个系列数据 它的工作原理如下图所示 红色和绿色基于其值 但是 如果我有两个系列数据 我无法为每个系列数据配置两个系列颜色 目前我只能做这个图 我希望两个系列图可以根据其
  • 画布图像遮罩/重叠

    在我的项目中 我必须使用画布在另一个相同尺寸和图案图像上实现一个不同的颜色图像 并且图像不是圆形或矩形形状 所有这些都是波浪形状的 它将应用于单个主背景图像 以便在每个主背景图像上显示多个图形onclick功能 重叠的图像应更改为另一种选定
  • 使用 JavaScript 填写 PDF 表单

    这就是我所拥有的 用户填写很长的 html 表单 用户获取下载不同 pdf 的链接 这是可填写的表格 链接是使用 javascript 生成的 用户单击链接 生成 url 使用用户之前提交的数据 在表单中处理数据并完成字段 这是在表单内使用
  • 使用 word_number 值对 javascript 数组进行排序

    如何对数组进行排序 var arr new Array word 12 word 59 word 17 这样我得到 word 12 word 17 word 59 Thanks 您需要编写一个排序方法 您可以编写任何您喜欢的方法 该方法在
  • 拖放图像上传在服务器上不起作用

    我正在尝试实现拖放图像上传 我在网上找到了一个相当简单的脚本并适合我的使用 在我的本地安装中 文件上传得很好 但在服务器上却不行 从我的调试尝试来看 SERVER HTTP X FILENAME 甚至没有被 php 设置 我尝试了以下方法
  • Javascript 根据字段值任意排序数组

    所以我有一个对象数组 如下所示 var myArray priority low priority critical priority high 我需要以这种方式排序 1 关键 2 高和3 低 如何才能做到这一点 我建议使用一个对象来存储排
  • contenteditable 在 safari 中不起作用,但在 chrome 中起作用

    我有一个奇怪的问题 这在 chrome 中按预期工作 但在 safari 中它只会发光 但不会对按键输入做出反应 这是触发文本版本的方法 var namebloc event currentTarget find column filena
  • Django 模板变量从 {% for %} 循环到 Javascript

    这是一个迭代记录的 Django 模板 每条记录都包含一个由 JS 函数填充的 div 为了让 JS 知道要做什么 它需要从每次 for 循环迭代中获取一个变量并使用它 我不知道具体如何实现这一目标或是否可能 我不知道 也许记录在单独的 J
  • 如何混淆或使 JavaScript 文件不可读?

    我的应用程序中有 JavaScript 脚本 其中包含 JavaScript 和 jQuery 函数 所有用户与我的应用程序的交互都是动态的 并且通过 jQuery 传递到应用程序 我意识到 当我在客户端运行我的应用程序时 客户端可以通过查
  • jQuery 面板滑块通过单击按钮打开但不会关闭

    我的页面上有一个按钮 可以使用 jquery 和 Modernizr 框架打开右侧面板 按钮位于屏幕最右侧 单击时 它会向左滑动并打开打开的面板 问题是 再次单击时它不会滑回到原来的位置 HTML div class cd panel fr
  • html输入数字,min + step,使step忽略min?

    是否有可能使step忽略min属性
  • 如何在 Astro 中的组件之间共享状态?

    我相信我在代码中采用了错误的方法 如何在按钮单击中设置客户端首选项 该按钮单击用作全局 astro 组件中的道具 或者我应该怎么做 我知道这是可能的 因为 astro js 本身在他们的文档网站中这样做了 下面是我的尝试的解释 我目前正在开
  • jVectorMap - 向下钻取地图 - 自定义背景

    我正在使用 jVectorMap 中的向下钻取地图 并且尝试将自定义背景颜色设置为地图的第二层 为了自定义主级别 我使用 main 参数 但我不知道如何将其扩展到地图的较低级别 提前致谢 马切伊 None
  • Firestore != 查询错误:“”!=”类型的参数无法分配给“WhereFilterOp”类型的参数。ts(2345)

    我的打字稿编译器有问题 此查询出现错误 const xxx admin firestore collection xxx where end timestampDate where end lt timestampDate get 错误 类
  • 使用重复模式捕获正则表达式

    我试图捕获字符串的所有部分 但我似乎无法正确处理 该字符串具有以下结构 1 22 33 中间有运算符的数字 可以有任意数量的术语 我想要的是 1 22 33 1 22 33 但我得到 1 22 33 22 33 我尝试过各种正则表达式 这是
  • 谷歌地图绘制两点之间的路线

    我编写了这段无辜的 JavaScript 代码 它允许用户创建两个标记并绘制它们之间的路线 它不起作用 相反 它给出了一个奇怪的错误 Uncaught TypeError Cannot read property ya of undefin
  • 当 jQuery .remove() 用于删除脚本标签时,它是否会清除加载的 JavaScript?

    正如标题所示 如果我使用以下命令从 DOM 中删除脚本标签 scriptid remove javascript 本身是保留在内存中还是被清除了 或者 我完全误解了浏览器处理 javascript 的方式吗 这是很有可能的 对于那些对我提问

随机推荐

  • 如果每行包含不同数量的字段(数量很大),如何正确读取csv文件?

    我有一个来自亚马逊的文本文件 包含以下信息 user item time rating review text the header is added by me for explanation not in the text file d
  • 如何创建频道然后找到ID

    我正在创建一个频道message guild channels create 我该如何找到该频道的消息 ID 并在新创建的频道中发送消息 message guild channels create bug priority reportPr
  • JS中获取未知单键的对象的值

    如何获取具有未知单键的对象的值 例子 var obj dbm 45 我想在不知道其密钥的情况下获得 45 值 我知道我可以循环对象键 始终是一个 for var key in objects var value objects key 但我
  • 实现登录(身份验证)屏幕的最佳实践是什么?

    我想在我的应用程序中实现登录屏幕并寻找最佳实践 假设这段代码 public class LoginActivity extends Activity public void onCreate Bundle icicle super onCr
  • Restful Api Express postgres 数据库

    我正在使用node和express开发一个restful api 我的数据库是postgresql 我需要使用postgres包pg promise 我知道我需要将我的应用程序与 app js 文件中的数据库连接 但我的问题是 我应该如何在
  • iPhone 4" 屏幕上的 xcassets 无法提取正确的图像

    我正在尝试将 Images xcassets 实现到我正在开发的项目中 据我了解 我可以将不同设备的所有不同大小的图像放在那里 然后调用 UIImage imageNamed name of image set 它将返回我正在处理的设备的正
  • Access 和 SQL Server 计算日期的方式不同

    我们有一些通用工具 除其他外 可以保存和显示日期 它将把它保存为一个数字 例如 41247 如果我将其转换回 Access 中的日期 我会得到 2012 12 04 这是正确的 使用 Format 41247 常规日期 或 Format F
  • 将 XML jQuery 对象转换为字符串

    我有一个上传的 xml 文件 我正在使用 jQuery 通过var ts parseXML filecontents 在 XML 文档中查找对象时 我尝试使用以下方法转换回原始源 div append ts find Object clon
  • “新运营商”和“新运营商”之间的区别?

    新运营商 和 新运营商 有什么区别 我通常会尝试用不同的措辞来更好地区分两者 但无论如何 这是一个好问题 Operator new 是一个分配原始内存的函数 至少在概念上 它与malloc 尽管这相当不寻常 除非您正在编写类似自己的容器的东
  • 如何修复无法转换类型错误?

    我想创建一个有关电影的详细信息页面 但我收到此错误并且有点卡住了 我收到无法转换类型错误 我确实理解该错误 但我不知道如何修复它 这是 PAP 实体的索引 也是数据库实例 public class MoviesController Cont
  • NSToolbarItem 的自动样式/着色

    有没有办法告诉 OS X 自动设置样式 着色NSToolbarItem 我通过 IB Xcode 添加了一个 图像工具栏项 并将图标设置为黑色 PDF如文档中所述 https developer apple com library mac
  • 如何在组件类中使用调度(react-redux)

    My code class LoginPage extends Component render return div div
  • 什么是 text/ping?这是一个新标准吗?它依赖于浏览器吗?

    我正在对 Google 上的某些问题进行故障排除 并看到从浏览器到 Google 服务器的此请求 它是非阻塞的 这是新事物吗 它的文档在哪里 Chrome 是否不等待响应 Request URL https www google com u
  • 使用 C# 动态构建 XML

    我必须根据用户输入动态创建一个 XML 文件 这是我的想法 但我遇到了两个问题 如果存在相同元素的集合 MaxOccurs 10 例如 如果用户输入了 4 个帐户 那么我的代码应该如何 如果有选择的话 根据所选元素 子元素应该发生变化 有人
  • Linux 点阵打印机上的 Java 打印质量

    我需要将报告从 Java 桌面应用程序打印到点阵打印机 Epson LX 300 II 报告由文本和一些图形组成 打印机通过 USB 连接 我使用 CUPS 进行打印 我正在使用 Printable 接口 Java 中相当标准 进行打印 我
  • 尝试在 JFrame 中显示 URL 图像

    尝试在 JFrame 窗口中显示 URL 图像 如果工作正常 当程序运行时 应该打开一个窗口显示图像 尝试尝试 URL 和硬盘路径 import java awt image BufferedImage import java io IOE
  • MVC6 Cors - 拦截飞行前

    我正在将 WebApi 升级到 MVC6 在 WebApi 中 我可以拦截每个 HTTP 请求 如果是预检 我可以使用浏览器可接受的标头进行响应 我试图弄清楚如何在 MVC6 WebApi 中做同样的事情 这是 WebApi 代码 prot
  • 似乎无法在 text() 和 textfield() 之间使用 Spacer()

    当我在 HStack 中并尝试在 Text 和 Textfield 视图之间创建空间时 我似乎无法使用 Spacer 函数 间隔器用于间隔视图的其他区域 但每当我尝试在这两个元素之间间隔时 它就不起作用 这是我正在使用的代码 VStack
  • Kendo UI MVC 4:窗口内的表单验证不会触发

    使用 ASP NET MVC 4 我声明了一个窗口 其中通过 LoadContentFrom 加载了内部内容 表单 Html Kendo Window Name windowAttachClient Title Attach Client
  • d3.json() 回调中的代码未执行

    我正在尝试加载 GeoJSON 文件并使用它作为 D3 的基础来绘制一些图形v5 问题是浏览器跳过了包含在d3 json 称呼 我尝试插入断点来测试 但浏览器会跳过它们 我不明白为什么 下面的代码片段 d3 json trip animat