"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi mon code ne s'exécute-t-il pas dans le rappel de D3.json ()?

Pourquoi mon code ne s'exécute-t-il pas dans le rappel de D3.json ()?

Publié le 2025-03-25
Parcourir:627

Why Is My Code Not Executing Within D3.json()\'s Callback?

Problèmes avec l'exécution du code dans le problème JSON de D3

Problème:

dans les versions D3 précédemment, provoquant le code de la fonction D3.json () n'a pas été exécuté, provoque le Brower pour la fonction d3.json () L'appel.

Solution:

Changement de signature dans d3 v5:

La signature de d3.json () a changé dans d3 v5. Il renvoie désormais une promesse au lieu de compter sur une fonction de rappel. Le deuxième argument est maintenant un objet de demande facultatif.

code modifié:

pour résoudre le problème, réécrivez le code comme suit:

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

Manipulation des erreurs:

D3 V5 ne s'appuie plus sur le premier paramètre du rappel pour la gestion des erreurs. Au lieu de cela, la promesse renvoyée par d3.json () sera rejetée si une erreur se produit. .Then (fonction (data) { // Code de votre rappel d'origine ici ... }) .Catch (fonction (erreur) { // Code de gestion des erreurs ici ... });

    . Catch () pour la gestion des erreurs:
  1. d3.json ("/ trip_animate / tripdata.geojson") .Then (fonction (data) { // Code de votre rappel d'origine ici ... }). Catch (fonction (erreur) { // Code de gestion des erreurs ici ... });
d3.json("/trip_animate/tripData.geojson")
  .then(function(data) {
    // Code from your original callback here...
  })
  .catch(function(error) {
    // Error handling code here...
  });
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3