D3 的 JSON 回调中的代码执行问题
问题:
在之前的 D3 版本中到 v5,d3.json() 函数回调中编写的代码未执行,导致浏览器跳过调用中包含的所有内容。
解决方案:
D3 v5 中的签名更改:
d3.json() 的签名在 D3 v5 中已更改。它现在返回一个 Promise,而不是依赖回调函数。第二个参数现在是一个可选的 RequestInit 对象。
修改的代码:
要解决此问题,请重写代码如下:
d3.json("/trip_animate/tripData.geojson") .then(function(data) { // Code from your original callback here... });
错误处理:
D3 v5 不再依赖回调的第一个参数进行错误处理。相反,如果发生错误,d3.json() 返回的 Promise 将被拒绝。
处理错误的主要方法有两种:
d3.json("/trip_animate/tripData.geojson") .then(function(data) { // Code from your original callback here... }) .catch(function(error) { // Error handling code here... });
d3.json("/trip_animate/tripData.geojson") .then(function(data) { // Code from your original callback here... }).catch(function(error) { // Error handling code here... });
通过实现通过这些更改,您可以确保 d3.json() 回调中的代码将按预期执行。
以上是为什么我的代码没有在 D3.json() 的回调中执行?的详细内容。更多信息请关注PHP中文网其他相关文章!