Heim  >  Artikel  >  Web-Frontend  >  Warum wird mein Code im Rückruf von D3.json() nicht ausgeführt?

Warum wird mein Code im Rückruf von D3.json() nicht ausgeführt?

Susan Sarandon
Susan SarandonOriginal
2024-11-01 21:41:02467Durchsuche

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

Probleme mit der Codeausführung im JSON-Callback von D3

Problem:

In früheren D3-Versionen Bis v5 wurde der im Rückruf der d3.json()-Funktion geschriebene Code nicht ausgeführt, was dazu führte, dass der Browser alles übersprang, was im Aufruf enthalten war.

Lösung:

Signaturänderung in D3 v5:

Die Signatur von d3.json() hat sich in D3 v5 geändert. Es gibt jetzt ein Promise zurück, anstatt sich auf eine Rückruffunktion zu verlassen. Das zweite Argument ist jetzt ein optionales RequestInit-Objekt.

Geänderter Code:

Um das Problem zu beheben, schreiben Sie den Code wie folgt um:

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

Fehlerbehandlung:

D3 v5 verlässt sich bei der Fehlerbehandlung nicht mehr auf den ersten Parameter des Rückrufs. Stattdessen wird das von d3.json() zurückgegebene Versprechen abgelehnt, wenn ein Fehler auftritt.

Es gibt zwei primäre Möglichkeiten, mit Fehlern umzugehen:

  1. .then() mit Fehlerbehandlung:
d3.json("/trip_animate/tripData.geojson")
  .then(function(data) {
    // Code from your original callback here...
  })
  .catch(function(error) {
    // Error handling code here...
  });
  1. .catch() für Fehlerbehandlung:
d3.json("/trip_animate/tripData.geojson")
  .then(function(data) {
    // Code from your original callback here...
  }).catch(function(error) {
    // Error handling code here...
  });

Durch Implementierung Durch diese Änderungen können Sie sicherstellen, dass Ihr Code innerhalb des d3.json()-Rückrufs wie vorgesehen ausgeführt wird.

Das obige ist der detaillierte Inhalt vonWarum wird mein Code im Rückruf von D3.json() nicht ausgeführt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn