Maison  >  Article  >  interface Web  >  Pourquoi mon code dans le rappel d3.json() ne s'exécute-t-il pas ?

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

DDD
DDDoriginal
2024-10-30 12:32:14978parcourir

Why Is My Code Within the d3.json() Callback Not Executing?

Code dans d3.json() Rappel non exécuté

Explication

Dans D3 v5, la signature de d3.json() a considérablement changé par rapport à ses versions précédentes. Au lieu d'utiliser une fonction de rappel, d3.json() renvoie désormais une promesse qui peut être gérée à l'aide de sa méthode .then(). Ce changement résout plusieurs problèmes avec l'ancienne implémentation et met D3 en conformité avec les API des navigateurs modernes.

Solution

Pour résoudre le problème où le code dans le rappel d3.json() n'est pas exécuté, vous devez mettre à jour votre code pour utiliser Promises. La nouvelle syntaxe de chargement des données à partir d'un fichier GeoJSON est la suivante :

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

Gestion des erreurs

En plus de modifier la structure de rappel, D3 v5 introduit également de nouvelles façons de gérer les erreurs lors du chargement. données. Au lieu de transmettre un gestionnaire d'erreurs comme premier paramètre à la fonction de rappel, vous devez utiliser la méthode .catch() de Promise :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn