Maison > Article > interface Web > Pourquoi mon code ne s'exécute-t-il pas dans le rappel d3.json() dans D3 v5 ?
Échec de l'exécution du code à l'intérieur de d3.json() Rappel dans D3 v5
Dans D3 v5, l'exécution du code dans le d3. Le rappel json() échoue souvent. Cela diffère du comportement des versions précédentes où le rappel était exécuté comme prévu.
Cause :
La signature de d3.json() a subi une modification par rapport à D3 v4 à v5. Dans la version 5, la requête est traitée à l'aide de promesses plutôt que de rappels. Le deuxième argument de d3.json() n'est plus un rappel mais un objet RequestInit facultatif.
Solution :
Pour résoudre ce problème, convertissez le code dans le rappel à une fonction de rappel passée en argument à la nouvelle méthode .then(). Le code devient :
d3.json("/trip_animate/tripData.geojson") .then(function(data) { // Code from your original callback goes here... });
Gestion des erreurs :
La gestion des erreurs a également été mise à jour dans D3 v5. Dans les versions précédentes, les erreurs étaient gérées à l'aide du premier paramètre du rappel passé à d3.json(). Dans la v5, la promesse renvoyée par d3.json() peut être rejetée pour indiquer une erreur. Les erreurs peuvent être capturées à l'aide de la méthode .catch().
d3.json("/trip_animate/tripData.geojson") .then(function(data) { // Code from your original callback goes here... }) .catch(function(error) { // Handle the error here... });
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!