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:
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... });
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!