首页 > web前端 > js教程 > 正文

为什么我的代码无法在 D3 v5 中的 d3.json() 回调中执行?

Mary-Kate Olsen
发布: 2024-10-30 15:21:42
原创
380 人浏览过

Why Does My Code Fail to Execute Within d3.json() Callback in D3 v5?

D3 v5 中无法执行 d3.json() 回调中的代码

在 D3 v5 中,d3.json() 回调中执行代码失败。 json() 回调经常失败。这与以前版本中按预期执行回调的行为不同。

原因:

d3.json() 的签名已从 D3 进行了更改v4 到 v5。在 v5 中,请求是使用 Promise 而不是回调来处理的。 d3.json() 的第二个参数不再是回调,而是可选的 RequestInit 对象。

解决方案:

要解决此问题,请将代码转换为回调作为参数传递给新的 .then() 方法的回调函数。代码变为:

d3.json("/trip_animate/tripData.geojson")
  .then(function(data) {
    // Code from your original callback goes here...
  });
登录后复制

错误处理:

错误处理也已在 D3 v5 中更新。在以前的版本中,错误是使用传递给 d3.json() 的回调的第一个参数来处理的。在 v5 中,d3.json() 返回的 Promise 可能会被拒绝以指示错误。可以使用 .catch() 方法捕获错误。

d3.json("/trip_animate/tripData.geojson")
  .then(function(data) {
    // Code from your original callback goes here...
  })
  .catch(function(error) {
    // Handle the error here...
  });
登录后复制

以上是为什么我的代码无法在 D3 v5 中的 d3.json() 回调中执行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!